C언어/C언어 심화 & 특수

[C99] C언어에서 표준 bool 타입 사용하기

카루-R 2020. 3. 21. 10:05
반응형

흔히 Boolean 타입은 0과 1만 담을 수 있는, 참/거짓을 판별하는 자료형으로 많이 쓰입니다. C언어에서는 bool 타입이 없어 int를 대신 사용하죠.

그런데 C99....어..그러니까.. 20년 전에 이미 bool타입은 추가되었습니다. 다만 bool이라고 그대로 쓰면 오류가 납니다. 꽤나 나중에 추가된 것이라 그런지 기존 코드에서 호환성을 유지하기 위해서인진 모르겠지만 사용법은 일단 다음과 같습니다.

_Bool boolean = 1;

타입 이름은 _Bool입니다. 밑줄 + 대문자는 표준에서만 사용하는 거 아시죠? 그래서 이런 형태로 추가가 됐나 봅니다. 대입은 int형 정수 0, 1을 사용합니다.

하지만 계속 _Bool을 저렇게 안 예쁘게 쓸 수는 없습니다. 그래서 새로운 헤더 파일이 등장했습니다.

#include <stdbool.h>

bool boolean = false;

여기서 bool은 예약어 _Bool의 매크로 (#define)입니다. true와 false 역시 사용할 수 있는데, 각각 1과 0의 _Bool타입 매크로입니다.

C++에서의 bool과 거의 비슷하게 사용 가능합니다.

#include <stdio.h>
#include <stdbool.h>

int main() {
	bool cmp = (13 == 13);
	if (cmp == true) {
		printf("13 == 13");
	}
       return 0;
}

예제 코드가 좀 별로긴 한데 저렇게 사용할 수 있다는 것만 알아두시면 됩니다.

반응형