C(C++아님)에서 bool, Boolean 사용
Programming/C/C++ / 2012. 10. 7. 04:30
머드 패치하면서 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;
}
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;
이 줄을 지워야 정상적으로 작동합니다.
반응형
'Programming > C/C++' 카테고리의 다른 글
[C/C++] Boolean type 사용하기 (0) | 2012.10.07 |
---|---|
mbstowcs(), wcstombs() 한글 사용 (0) | 2012.08.29 |
데이터(Data), 힙(Heap), 스택(Stack) 영역 (0) | 2012.06.27 |
빅 엔디안(Big Endian) 과 리틀 엔디안(Little Endian) (0) | 2012.06.25 |
메모리 공간의 이해 (0) | 2012.06.25 |