프로그래밍

C언어] bool, Boolean 논리형 정의하여 사용: 불린/불리언

지니아부지 2011. 10. 19. 16:14
참조 http://mwultong.blogspot.com/2006/10/c-bool-boolean.html

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;
이 줄을 지워야 정상적으로 작동합니다.

'프로그래밍' 카테고리의 다른 글

PF_INET 와 AF_INET 의 차이점  (0) 2012.04.26
C언어 소수점 반올림  (0) 2012.04.17
schedule setting  (0) 2011.10.11
[Thread] pthread_setschedparam() function  (0) 2011.10.10
[Thread] pthread_getschedparam() function  (0) 2011.10.10