bool을 int로 변환
다음 코드 조각을 고려하세요.
int x = 4 < 5; assert(x == 1); x = 4 > 5; assert(x == 0);
질문이 생깁니다: 이것이 변환인가요? 가지고 다닐 수 있는? 두 어설션이 모두 통과된다는 것을 보장할 수 있습니까?
답변:
예, 이 변환은 완전히 이식 가능하며 C 표준을 준수합니다. bool에서 int로의 명시적인 변환은 C 11 또는 14 표준의 §4.7/4 및 C 17 표준의 §7.8/4에 정의된 대로 C에 암시적으로 적용됩니다.
특히 표준에서는 다음과 같이 명시합니다. "소스 유형이 bool인 경우 false 값은 0으로 변환되고 true 값은 1로 변환됩니다."
따라서 주어진 코드:
C에 대한 참고 사항:
C에서 bool 데이터 유형은 그렇지 않습니다. 현재의. 그러나 C99에는 stdbool.h 헤더 파일에 정의된 매크로인 _Bool 유형이 도입되었습니다. 또한 true와 false는 각각 정수 상수 1과 0으로 확장되는 매크로입니다.
따라서 C에서는
위 내용은 C와 C에서 Bool-to-Int 변환이 가능합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!