본문 바로가기

C언어/C언어 문법

[C언어] bool 자료형

728x90
반응형

stdbool.h

 

지난번에 반복문을 소개할 때 반복문의 조건식에서 true와 false를 사용할 수 없다고 했었다.

 

C언어에서는 기본적으로 bool 자료형을 지원하지 않기 때문이다.

 

그러나 bool 자료형의 정의를 포함하고 있는 stdbool.h 헤더 파일을 통해서라면 bool 자료형을 사용할 수 있다.

 

bool 자료형을 사용하여 "Hello World!"를 무한 번 출력하는 예시 코드를 작성해보겠다.

 

 

#include <stdio.h>
#include <stdbool.h>

int main ()
{
    while (true)
    printf("Hello World!\n");
    return 0;
}
 
 
 
 
 
 
 
 
 
 
 
 

bool 형 변수

 

bool 자료형도 변수이기 때문에 bool 형 변수를 선언하고 그 값을 저장할 수 있다.

 

 

#include <stdio.h>
#include <stdbool.h>

int main()
{
    bool tr = true;
    bool fal = false;
    
    while (fal)
        printf("Not Hello\n");
    while (tr)
        printf("Hello World\n");
    return 0;
}

 

 

위 코드에서 while (fal) 내부의 코드는 실행되지 않기때문에 'Hello World'를 무한 번 출력하게 된다.

 

 

 

 

 

 

 

bool 자료형

 

bool 자료형에 대해서 더 알아보기 위해 코드를 하나 작성해보겠다.

 

#include <stdio.h>
#include <stdbool.h>

int main()
{
    bool tr = true;
    bool fal = false;
    printf("%d\n", sizeof(tr));
    printf("%d %d\n", tr, fal);
    printf("%c %c\n", tr, fal);

    return 0;
}
 
 
 

위 코드에서 알 수 있듯이 sizeof 함수를 사용하여 bool 형 변수의 크기는 1바이트인 것을 알 수 있다.

 

반복문을 소개할 때 false는 0, true는 통상적으로 1로 표시된다고 하였다.

 

따라서 bool 형 변수를 10진수 정수형으로 출력해보면 false는 0, true는 1로 출력된다.

 

bool 형 변수를 문자로 출력해보면 true는 'r' 이 출력되고 false는 Null, 즉 아무것도 출력되지 않았다.

 

 

 

 

 

 

 

 

728x90
반응형