미리 정의된 불리언 상수(Predefined Boolean constants)(C23)
미리 정의된 불리언 상수(Predefined Boolean constants)(C23)
C23부터 true와 false가 언어 차원의 키워드가 됐어요. 그전까지는 <stdbool.h> 헤더의 매크로로 true/false를 썼는데, 이제는 헤더 없이도 진릿값을 읽기 좋은 이름으로 표현할 수 있죠.
출처: cppreference
본문
문법
true |
(1) | (C23부터) |
false |
(2) | (C23부터) |
동작 방식(Explanation)
키워드 true와 false는 미리 정의된 상수를 나타내요. 둘 다 bool 타입이면서 lvalue가 아니에요.
주의할 점(Notes)
bool에서 다른 타입으로의 암시적 변환은 정수 변환(integral conversions)에서, 다른 타입에서 bool로의 암시적 변환은 불리언 변환(boolean conversions)에서 다뤄요.
C23 이전에는 true와 false가 <stdbool.h>에서 제공하는 매크로로 구현됐어요. 호환성을 위해 C23에서도 구현이 bool, true, false를 미리 정의된 매크로로 제공할 수는 있어요.
예제
#include <assert.h>
int main()
{
assert(true == 1 && 0 == false);
}
true는 1과 같고 0은 false와 같다는 점을 검사하는 코드예요. 두 단언이 모두 참이므로 프로그램은 정상적으로 종료돼요.
더 알아보기
_Bool타입: 불리언 값을 담는 정수 타입.- 불리언 변환(boolean conversion): 다른 타입의 값을
bool로 바꾸는 암시적 변환 규칙.