본문 바로가기

개발자 레니는 지금 -/소프트웨어와 함께

[ C/C++ ] Type bool


Type bool



원래 C에서는 bool type은 없었다. ( C99 이전 )

하지만 C도 이제 bool type이 필요하다고 생각한 것인지 드디어 bool type이 등장했다.



1. bool 이 아닌이유

C99 이전에도 사람들은 bool이 필요했다.

그래서 보통은 define 명령어를 이용해 사용자 정의로 bool을 사용하고 했다.


이런식으로,

typedef int bool

#define false 0

#define true  1


bool b;

b = true;


따라서 C99에서 bool type을 적용시킬 때 문제가 발생하게 된다.

C99에서 bool 타입을 추가하려고 하니 기존에 사람들이 사용하던 저 코드들이 문제가 되는 것이다!




2. 그래서 선택한 방법

그리하여 우리의 C00는 _Bool 이라는 type을 만들어내게 된다.

즉, C에서는 _Bool 키워드를 사용해서 bool value를 만들어 낼 수 있다.

_Bool은 stdbool.h에 아래와 같이 정의 되어있다.


stdbool.h

typedef _Bool bool;

#define true   (_Bool)1

#define false (_Bool)0




3. 습관이란 무서운 법

그래도 우리는 bool이 편하다, 보기에도 _Bool 보단 bool 이 뭔가 더 친근하다.

그렇다면 bool로 type 선언을 할 수 없을까?


가능하다! stdbool.h 헤더파일을 include 시켜준다면 _Bool 이 아닌 bool 키워드로 bool type value를 생성 할 수 있다.

#include <stdbool.h>


bool a = true;





#2018년09월06일