Bool을 Int로 변환: 이식성에 대한 자세한 검토
특정 프로그래밍 시나리오에서는 bool을 int 값으로 변환해야 합니다. 그러나 다양한 플랫폼 간 이식성에 대한 우려가 있습니다. 이 기사에서는 이 변환의 이식성에 대한 포괄적인 분석을 제공하며 다음 주장이 통과될 것이라고 확신할 수 있는지에 대한 질문을 해결합니다.
int x = 4 < 5; assert(x == 1); x = 4 > 5; assert(x == 0);
Standard Conformant Conversion
C에서 bool-int 변환은 C 표준에 의해 암시적으로 정의됩니다. C 11 또는 14 표준의 §4.7/4 및 C 17 표준의 §7.8/4에 따르면 "소스 유형이 bool인 경우 false 값은 0으로 변환되고 true 값은 1로 변환됩니다." 이는 다음을 의미합니다.
따라서 bool을 int로 변환하는 것은 C에서 완전히 이식 가능하고 표준을 준수합니다.
C에 대한 고려
C99에서는 기본 정수인 _Bool 유형을 도입했습니다. 유형. stdbool.h에는 bool, true 및 false 매크로도 도입되었습니다. C99 표준의 섹션 7.16에서는 true가 정수 상수 1로 확장되고 false가 0으로 확장된다고 명시합니다. 따라서 이러한 매크로는 C의 bool 변환과 유사하게 동작합니다.
결론
bool-int 변환은 C 및 C99 이상을 지원하는 다양한 플랫폼에서 이식 가능합니다. 프로그래머는 이 기사의 시작 부분에 표시된 주장이 두 언어 모두에서 성공적으로 통과할 것이라고 확신할 수 있습니다. 최대의 이식성과 명확성을 위해 표준 부울 유형을 사용하는 것이 좋습니다.
위 내용은 Bool-to-Int 변환이 C 및 C99에서 실제로 이식 가능합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!