C++ 언어 정의는 char을 bool로 캐스팅하고 char을 다시 캐스팅하는 것에 대해 무엇을 약속합니까?bool을 통해 char 왕복 캐스트가 어떻게됩니까?
char original = 255;
bool next = original;
char final = next;
대부분의 컴파일러는이 경우 언어가 보장하는 것 이상 무엇을합니까?
C++ 언어 정의는 char을 bool로 캐스팅하고 char을 다시 캐스팅하는 것에 대해 무엇을 약속합니까?bool을 통해 char 왕복 캐스트가 어떻게됩니까?
char original = 255;
bool next = original;
char final = next;
대부분의 컴파일러는이 경우 언어가 보장하는 것 이상 무엇을합니까?
원래 값이 0인지 아닌지에 따라 값이 0 또는 1이됩니다. bool
로 변환
는 true
또는 false
의 값을 제공한다 :
4.12 널 부재 포인터 값으로 변환된다
는false
제로 값, 널 포인터 값이거나; 다른 값은true
으로 변환됩니다.char
다시 변환
제로 false
변환하고 true
한 다음 소스 타입 bool
이다
4.7/4의 경우, 값
false
은 제로 에true
변환 된 값을 변환되고 하나에.
적분 값 또는 true
false
4.12 하나로 bool
결과로 변환 bool
는 1
0
또는 하나의 정수 값으로 변환 결과 (45 (6)). 4 장 (표준 변환)을 참조하십시오.
bool로 변환하면 0과 null은 false로 변환되고 나머지는 모두 true로 변환됩니다. bool에서 변환 할 때 false는 0으로 변환되고 true는 1로 변환됩니다.