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

카테고리

분류 전체보기 (2797)
Unity3D (853)
Programming (479)
Server (33)
Unreal (4)
Gamebryo (56)
Tip & Tech (185)
협업 (61)
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

머드 패치하면서 bool 값이 필요해서 bool을 넣었더니 에러가 난다..

C는 bool이 없던가..? 있지 않나? 하고 찾아봤더니..

없다..;;

아..기초가 부족한 인생.. 공부가 부족하구나..

C와 C++의 차이점도 좀 봐놔야겠다..


---------------------------------------------------------------------------------------------------------

C++가 아닌, 전통적인 C언어에는 bool (Boolean; 불린, 불리언) 타입이 없습니다. 그래서 사용자가 만들어 주어야 합니다.

typedef 를 사용하여 bool 이라는 자료형을 하나 만들었습니다.

false (거짓) = 0
true  (참)   = 1

에 해당합니다.


C에서, 불린(Boolean) 자료형 정의 예제


소스 파일명: 0.c
#include <stdio.h>

typedef enum {false, true} bool;


int main(void) {

  bool myTest = true;
  if (myTest) puts("논리값이 true 라면 이 줄이 출력됩니다.");


  myTest = false;


  if (myTest) puts("논리값이 false 라면 이 줄이 출력되지 않습니다.");
  if (!myTest) puts("느낌표로 값을 뒤집어주면 이 줄이 출력됩니다.");

  return 0;
}


단, C소스의 확장자가 .cpp 면, C++의 불린형과 충돌하기에 다음과 같은 엉뚱한 에러가 납니다:

0.cpp(3) : error C2143: syntax error : missing '}' before 'constant'
0.cpp(3) : error C2143: syntax error : missing ';' before '}'
0.cpp(3) : error C2059: syntax error : '}'



.cpp 확장자를 가진 소스라면,
typedef enum {false, true} bool;
이 줄을 지워야 정상적으로 작동합니다.




반응형
Posted by blueasa
, |