C99 부울 데이터 유형은 무엇이며 어떻게 사용합니까?
답변:
<stdbool.h>
헤더 포함
#include <stdbool.h>
int main(void){
bool b = false;
}
매크로 true
및 false
으로 확장 1
하고 0
각각.
섹션 7.16
부울 유형 및 값< stdbool.h >
- 1 헤더는
<stdbool.h>
4 개의 매크로를 정의합니다.- 2 매크로
- bool은 _Bool로 확장됩니다.
- 3 나머지 세 개의 매크로는 #if 전처리 지시문에서 사용하기에 적합합니다. 그들은
- true : 정수 상수 1로 확장됩니다.
- false : 정수 상수 0으로 확장됩니다.
- __bool_true_false_are_defined 정수 상수 1로 확장됩니다.
- 4 7.1.3의 조항에도 불구하고 프로그램은 정의를 정의하지 않고 매크로 bool, true 및 false를 다시 정의 할 수 있습니다.
DaniWeb 에있는이 관련 스레드에서 여기에 대한 답변을 확인하십시오. .
편리한 참조를 위해 여기에서 추출하고 인용했습니다.
_Bool : C99의 부울 유형. _Bool을 직접 사용하는 것은 bool, true 또는 false에 대한 매크로를 이미 정의한 레거시 코드를 유지 관리하는 경우에만 권장됩니다. 그렇지 않으면 해당 매크로가
<stdbool.h>
헤더 에서 표준화됩니다 . 해당 헤더를 포함하면 C ++ 에서처럼 bool을 사용할 수 있습니다.
#include <stdio.h>
#include <stdbool.h>
int main ( void )
{
bool b = true;
if ( b )
printf ( "Yes\n" );
else
printf ( "No\n" );
return 0;
}
_Bool
와 함께 존재 하는 이유에 대한 설명은 +1 bool
. 그것을 이해하는 데 매우 도움이됩니다.
_Bool
(할당, 캐스트 등으로) 변환 은 표현식 앞에!!
.