C에서 부울 데이터 유형의 크기 결정
모든 C 프로그래머는 "bool"이라는 기본 데이터 유형을 접하게 됩니다. 참 또는 거짓의 논리값. 이 데이터 유형으로 작업할 때 발생하는 일반적인 질문 중 하나는 크기가 항상 1바이트인지 여부입니다.
sizeof(bool)의 표준 정의
이 질문에 대한 답변 , C 언어 표준에 정의된 대로 sizeof(bool)은 구현에 따라 정의됩니다. 이는 부울 값의 구체적인 크기가 사용되는 컴파일러 및 플랫폼에 따라 달라질 수 있음을 의미합니다.
구체적으로 C 표준의 §5.3.3/1에는 char, signed char 및 unsigned의 크기가 명시되어 있습니다. char은 항상 1이지만 bool을 포함한 다른 모든 기본 유형의 크기는 구현에 따라 정의됩니다.
sizeof(char), sizeof(signed char) and sizeof(unsigned char) are 1; the result of sizeof applied to any other fundamental type is implementation-defined.
또한, 각주 69에서는 "sizeof(bool)이 1일 필요는 없다"고 명시적으로 명시하고 있습니다.
구현별 크기 조정
결과적으로 bool의 크기는 상황에 따라 달라질 수 있습니다. 다양한 컴파일러와 하드웨어 아키텍처. 예를 들어 일부 컴파일러는 bool을 단일 비트로 구현할 수 있는 반면 다른 컴파일러는 호환성 이유로 또는 특정 아키텍처의 성능을 최적화하기 위해 여러 바이트를 사용할 수 있습니다.
따라서 bool의 크기가 항상 1바이트일 필요는 없으며 여러 플랫폼용 C 애플리케이션을 개발할 때 또는 부울 값의 크기에 대해 서로 다른 가정을 가질 수 있는 상호 운용 가능한 라이브러리로 작업할 때 이러한 가변성을 고려하십시오.
위 내용은 C에서 부울 데이터 유형의 크기는 항상 1바이트입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!