Computer >> 컴퓨터 >  >> 프로그래밍 >> C 프로그래밍

C 언어에서 bool 타입 구현하고 사용하는 방법

C 언어에는 bool이라는 사전 정의된 데이터 타입이 없습니다. 하지만 enum(열거형)을 활용하면 bool 타입을 직접 만들어 사용할 수 있습니다.

열거형으로 bool을 정의할 때는 falsetrue를 요소로 넣습니다. 이때 false가 첫 번째 위치에 있으므로 값 0을 가지고, true는 두 번째 위치에 있으므로 값 1을 가지게 됩니다. 이렇게 정의한 열거형은 일반 데이터 타입처럼 변수 선언에 사용할 수 있습니다.

예제 코드

#include<stdio.h>
typedef enum {
    F, T
}
boolean;
main() {
    boolean my_bool1, my_bool2;
    my_bool1 = F;
    if(my_bool1 == F) {
        printf("my_bool1 is false\n");
    } else {
        printf("my_bool1 is true\n");
    }
    my_bool2 = 2;
    if(my_bool2 == F) {
        printf("my_bool2 is false\n");
    } else {
        printf("my_bool2 is true\n");
    }
}

실행 결과

my_bool1 is false
my_bool2 is true

코드 설명

my_bool1에는 F(값 0)를 대입했기 때문에 조건문에서 "false"가 출력됩니다. 반면 my_bool2에는 2를 대입했는데, 열거형 변수는 내부적으로 정수이므로 2를 저장할 수 있으며, 2는 F(0)와 같지 않기 때문에 "true"로 판정됩니다.

참고로 C99 표준부터는 <stdbool.h> 헤더 파일을 포함하면 bool, true, false를 표준 방식으로 사용할 수 있으므로, 최신 컴파일러 환경에서는 직접 enum을 정의하는 것보다 이 헤더를 사용하는 것이 더 권장됩니다.