블로그 이미지
Every unexpected event is a path to learning for you. blueasa

카테고리

분류 전체보기 (2794)
Unity3D (852)
Programming (478)
Server (33)
Unreal (4)
Gamebryo (56)
Tip & Tech (185)
협업 (11)
3DS Max (3)
Game (12)
Utility (68)
Etc (98)
Link (32)
Portfolio (19)
Subject (90)
iOS,OSX (55)
Android (14)
Linux (5)
잉여 프로젝트 (2)
게임이야기 (3)
Memories (20)
Interest (38)
Thinking (38)
한글 (30)
PaperCraft (5)
Animation (408)
Wallpaper (2)
재테크 (18)
Exercise (3)
나만의 맛집 (3)
냥이 (10)
육아 (16)
Total
Today
Yesterday

찾아보니 stdbool.h 라는 헤더가 있어서 포스팅 해놓음..


01#include <stdio.h>
02#include <stdbool.h>
03 
04int main(void)
05{
06    bool a;
07 
08    a = true;
09    if (a) {
10        printf("true\n");
11    else {
12        printf("false\n");
13    }
14    a = false;
15    if (a) {
16        printf("true\n");
17    else {
18        printf("false\n");
19    }
20    return 0;
21}
22</stdbool.h></stdio.h>

C에서는 0 또는 1의 값만을 가지는 _Bool 타입이 C99에서 표준으로 채택되었으나 GCC에서는 이미 3.x 버전에서도 지원하고 있었다. stdbool.h를 include하면 bool이라는 이름의 타입과 true/false의 값을 사용할 수 있다.

C++에서는 별다른 헤더의 지정없이 동일하게 사용할 수 있다.

Boolean 타입의 단점은, 명시적으로 true/false가 나눠지는 값을 대입하지 않고 built-in 타입으로부터 값을 그대로 전달받을 때 의미와 실제 값이 뒤바뀔 수 있다는 점에 있다.(예. 함수의 return 값을 조건문에서 검사할 때, 이 함수가 boolean 타입의 값을 반환하는가 아니면 int 타입의 값을 반환하는가에 따라 의미적 오류가 발생할 수 있다.)

반면에, 이 타입의 가장 큰 미덕은 가독성을 높여준다는 데 있다.

다만, 위에서 언급한 것과 같이 함수의 return 값을 boolean 타입으로 지정하여 사용하는 것은 바람직하지 않다. return 값은 단순히 함수 실행의 성공/실패 여부만을 가리키는 것이 아니라 에러 코드를 포함할 수도 있고 결과의 크기 등의 정보를 표현할 수도 있는 것이기 때문이다.

출처 : http://terzeron.net/wp/?p=760

반응형
Posted by blueasa
, |