Sunday, October 22, 2006
C언어] bool, Boolean 논리형 정의하여 사용: 불린/불리언
C++가 아닌, 전통적인 C언어에는 bool (Boolean; 불린, 불리언) 타입이 없습니다. 그래서 사용자가 만들어 주어야 합니다.
typedef 를 사용하여 bool 이라는 자료형을 하나 만들었습니다.
false (거짓) = 0
true (참) = 1
에 해당합니다.
소스 파일명: 0.c
단, 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;
이 줄을 지워야 정상적으로 작동합니다.
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;
이 줄을 지워야 정상적으로 작동합니다.
tag: cpp
C언어 | C/C++ (Visual C++)
좋은 정보 감사합니다. :)
<< Home