C언어 bool 자료형, 정말 1바이트일까? 파헤쳐 보기!

Wed, May 28 2025 22:08:45 KST

안녕하세요! 개발자 여러분, C언어를 사용하다 보면 다양한 자료형과 마주하게 됩니다. 그중에서도 참(true)과 거짓(false)을 표현하는 bool 자료형은 조건문이나 반복문에서 빼놓을 수 없는 중요한 요소인데요. 문득 이런 궁금증이 생길 수 있습니다. “C언어에서 bool 자료형은 과연 몇 바이트의 메모리를 차지할까?”

오늘은 이 궁금증을 함께 해결해 보도록 하겠습니다.

C언어와 bool 자료형: 기본부터 탄탄하게

C언어는 처음부터 bool이라는 키워드를 기본 자료형으로 제공하지 않았습니다. 하지만 C99 표준부터 <stdbool.h> 헤더 파일을 포함하면 bool, true, false 키워드를 마치 기본 자료형처럼 편리하게 사용할 수 있게 되었습니다.

#include <stdbool.h> // 이 헤더 파일을 포함해야 bool을 사용할 수 있습니다!
#include <stdio.h>

int main ()
{
  bool is_raining = true;
  bool is_sunny = false;

  if (is_raining)
    printf ("우산을 챙기세요!\n");

  if (!is_sunny)
    printf ("날씨가 맑지는 않네요.\n");

  return 0;
}

bool 자료형의 크기: 진실은?

그렇다면 가장 중요한 질문으로 돌아와서, bool 자료형의 크기는 얼마일까요?

일반적으로 C언어에서 bool 자료형은 1바이트의 크기를 가집니다.

그 이유는 CPU가 메모리에 접근할 때 가장 작은 단위 중 하나가 1바이트이기 때문입니다. bool 값은 참(1) 또는 거짓(0)만을 표현하므로, 이론적으로는 1비트만으로도 충분하지만, 메모리 주소 지정의 효율성 등을 고려하여 대부분의 컴파일러와 시스템에서는 bool을 1바이트로 처리합니다.

직접 확인해 보자! sizeof 연산자 활용

“백문이 불여일견”이라는 말이 있죠? 직접 코드를 통해 bool 자료형의 크기를 확인해 볼 수 있습니다. C언어에는 자료형이나 변수의 크기를 바이트 단위로 알려주는 sizeof 연산자가 있습니다.

다음 코드를 실행해 보세요.

#include <stdio.h>
#include <stdbool.h> // bool 자료형 사용을 위해 필수!

int main ()
{
  printf ("bool 자료형의 크기: %zu 바이트\n", sizeof(bool));
  // %zu는 sizeof 연산자의 결과를 출력하기 위한 서식 지정자입니다.
  return 0;
}

대부분의 최신 컴파일러와 운영체제 환경에서 위 코드를 실행하면 다음과 같은 결과를 얻을 수 있습니다.

bool 자료형의 크기: 1 바이트

예외도 있을까?

“일반적으로” 1바이트라고 말씀드렸는데요. 이는 컴파일러나 특정 시스템 아키텍처에 따라 아주 드물게 다를 가능성도 있다는 의미를 내포합니다. 하지만 현대의 거의 모든 C언어 환경에서는 bool을 1바이트로 취급한다고 보셔도 무방합니다.

마무리하며

오늘은 C언어의 bool 자료형과 그 크기에 대해 알아보았습니다. 요약하자면,

  • C99 표준부터 를 통해 `bool` 사용 가능
  • bool 자료형은 일반적으로 1바이트의 메모리 공간 차지
  • sizeof(bool) 연산자를 통해 실제 크기 확인 가능

이 정보가 여러분의 C언어 프로그래밍 여정에 작은 도움이 되셨기를 바랍니다!