암시적 변환: bool을 int로 변환
C에서는 int 변수에 bool 표현식을 할당할 때 직관적이지 않은 변환이 발생합니다. 다음 코드 조각을 고려하십시오.
int x = 4 < 5; assert(x == 1); x = 4 > 5; assert(x == 0);
변환 세부 정보
C 표준(C 11/14의 §4.7/4, C 11/14의 §7.8/4)에 따름 C 17, §7.3.9/2 in C 20):
따라서 주어진 코드, 4 < 5는 true로 평가되고, 이는 1로 변환되어 x에 저장되는 반면, 4 > 5는 false로 평가되어 0으로 변환되어 x에 저장됩니다.
이식성
이 암시적 bool에서 int로의 변환은 모든 C 플랫폼에서 이식 가능합니다.
C와의 비교
C와 다름 , C는 C99 표준 이전에는 bool 데이터 유형을 명시적으로 지원하지 않습니다. 그러나 C99 표준에서는 C의 bool과 동일한 _Bool 유형을 도입했습니다. C99에서는 true 및 false 매크로가 각각 정수 상수 1과 0으로 확장됩니다. 결과적으로 bool에서 int로의 변환 동작은 C와 C 모두에서 유사합니다.
결론
주어진 코드에서 암시적인 bool에서 int로의 변환은 표준을 준수합니다. C 플랫폼에서 이식 가능합니다. 정통적이지 않은 것처럼 보일 수도 있지만 C 언어의 기본 동작을 이해하는 데 필수적입니다.
위 내용은 C는 부울 값을 어떻게 암시적으로 정수로 변환합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!