> 백엔드 개발 > C++ > C에서 부울 데이터 유형의 크기는 항상 1바이트입니까?

C에서 부울 데이터 유형의 크기는 항상 1바이트입니까?

Mary-Kate Olsen
풀어 주다: 2024-12-08 19:43:11
원래의
209명이 탐색했습니다.

Is the Size of a Boolean Data Type in C   Always 1 Byte?

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿