C – bool 을 않쓰는 이유

By | 2022년 2월 7일
Table of Contents

C – bool 을 않쓰는 이유

참조

최근에 bool 을 쓸까 해서 C 에 bool 이 있나 없나 찾아보다가…
예전에 찾아봤던 기억이 다시 나서 적어둔다.

bool in C

bool 은 있다. 그런데 쓰이지 않는다.

#include <stdbool.h>
bool is_good_posting = true;

왜 않쓸까?

전통적인 이유

예전에 bool 이 없었고,
공식적으로 bool 대용 기법이 장기간에 걸쳐 전통적으로 쓰이고 있었다.

while(1) { ...... }

다른 언어같으면 아주 이상한 코드지만 C 에서는 오희려 자연스러운 코드가 된다.

성능상의 장점이 있는가?

stdbool.h 를 열어보면 내내 똑같이 #define 을 쓰고 있다.
다시 말해 bool 을 써도 성능상의 장점이 없다.

성능상의 장점을 위해서는 bool 타입을 위해 1 bit 크기의 새로운 type 을 생성해야 하고,
다시 새로 생성한 type 을 위해 compiler 를 최적화해야 하는 작업이 필요하다.

compiler 최적화의 고난의 길을 다시 걷는 것에 비해 얻는 것은 적다.

또는, 언어 설계 단계에서 고민을 했으나,
bool 은 성능향상이 어렵다는 판단으로 그냥 구현을 안했을 수도…

타이핑 증가

전통적인 코딩 기법을 바꿔야 하고,
성능상의 이점도 없는데,
타자는 늘어난다.

while(1) { ...... }
// while(true) { ...... }

컴파일러 호환

bool 이 등장한게 C99 이다.

아무런 이점이 없는데다가,
컴파일 호환 레벨까지 올려야 한다.

답글 남기기