표준 라이브러리 헤더 <stdbool.h>

표준 라이브러리 헤더 <stdbool.h> (C99)(C23에서 폐기)

C에는 진리값을 나타내는 _Bool 타입이 있어요. 그런데 _Bool이라는 밑줄이 붙은 이름은 평소에는 조금 낯설죠. <stdbool.h>는 불리언 타입을 위한 편의 매크로를 제공하는 헤더예요. 덕분에 bool, true, false라는 친숙한 이름으로 참/거짓을 표현할 수 있어요.

출처: cppreference

본문

매크로(Macros)

매크로 설명
bool (C99)(C23에서 제거) _Bool로 확장되는 편의 키워드 매크로

매크로 상수(Macro constants)

상수 설명
true (C99)(C23에서 제거) 정수 상수 1로 확장
false (C99)(C23에서 제거) 정수 상수 0으로 확장
__bool_true_false_are_defined (C99)(C23에서 폐기) 정수 상수 1로 확장

시그니처(Synopsis)

#if __STDC_VERSION__ < 202311l
#define bool _Bool
#define true 1
#define false 0
#endif

#define __bool_true_false_are_defined 1

C23부터는 bool, true, false가 키워드 자체가 되면서 이 편의 매크로가 필요 없어져요. 그래서 시그니처에서도 __STDC_VERSION__202311L보다 작을 때만 정의하도록 조건문이 걸려 있어요. <stdbool.h> 헤더 자체도 C23에서 폐기(deprecated) 처리됐어요.

더 알아보기

  • _Bool 타입의 의미는 불리언 타입(Boolean type) 문서에서 확인해요.
  • 조건식에서 true/false 값이 어떻게 쓰이는지는 문장(statement) 문서를 함께 봐요.