안녕하세요. BlockDMask 입니다.
오늘은 C언어 C99 이후부터 사용 할 수 있는 bool 타입에 대해서 알아보려고 합니다.
C++에서는 기본 자료형으로 bool 타입이 존재하니,
C++을 하시는 분들은 굳이 이 포스팅을 보실 필요는 없을 것 같습니다.
<목차>
1. C언어 bool 타입 설명
2. C언어 bool 타입 예제
1. C99 bool 타입 설명
C언어에도 bool 타입이 있습니다.
진짜 있습니다.
정말이에요.
C99 bool 타입 헤더파일, 선언 방법 및 초기화 방법
C언어 표준 90년대 후반에 만들어진 표준 C99에서 bool 타입이 만들어 졌습니다.
- 헤더파일
<stdbool.h>
- 사용방법
타입 이름 : bool
타입의 값 : true, false
한번 예제를 바로 볼까요?
1
2
3
4
5
6
7
8
9
10
11
|
#include <stdio.h>
#include <stdbool.h>
int main(void)
{
bool isEven = true;
bool isOdd = false;
return 0;
}
|
cs |
이런식으로 stdbool.h 헤더파일을 추가하면 C언어에서도 true와 false를 나타내는 boolean 타입을 사용할 수 있습니다.
bool 타입의 사이즈는?
그럼 bool 타입의 사이즈는 어느정도 일까요? 바로 sizeof()를 이용해서 한번 출력해 보겠습니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
#include <stdio.h>
#include <stdbool.h>
int main(void)
{
bool isEven = true;
printf("int : %d\n", sizeof(int));
printf("double : %d\n", sizeof(double));
printf("bool : %d\n", sizeof(bool));
printf("bool : %d\n", sizeof(isEven));
return 0;
}
|
cs |
bool 타입의 사이즈는 1byte 인 것을 알 수 있습니다.
자, 이제 C언어 에서도 bool 타입 쓰세요.
#define TRUE 1
#define FALSE 0 이런건 더이상 사용하지 말고
bool isEven = true;
bool isOdd = false; 이렇게 bool 타입을 사용하십시다.
**제가 C언어를 처음 배웠을때가 2010? 2011? 2012? 이쯤이었는데, 왜 1990년대 후반에 나온 C99 표준으로 이미 존재하는 bool 타입이 없다고 배웠을까요? 이상하네요~
2. C99 bool 타입 예제
2-1) C언어 bool 타입 예제 1 - 무한 루프
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdbool.h>
int main(void)
{
int num;
while (true)
{
printf("숫자 입력 : ");
scanf("%d", &num);
if (num == 0)
{
printf("굿. 프로그램 종료\n");
break;
}
printf("ㄴㄴ 다시 입력좀\n");
}
return 0;
}
|
cs |
이렇게 while(true)를 통해서 무한루프를 만들 수 있습니다.
C언어에서 bool 이 없다고 배웠던 과거에는 while(1) 이렇게 했었었죠.
이제는 당당하게 C언어에서도 true, false를 이용합니다.
2-2 ) C언어 bool 타입 예제 2 - if 문 사용
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
#include <stdio.h>
#include <stdbool.h>
int main(void)
{
// 예제1
if (true)
{
printf("true 입니다.\n\n");
}
if (false)
{
printf("false 입니다.\n\n");
}
// 예제2
bool isEven = false;
if (4 % 2 == 0)
{
isEven = true;
}
else
{
isEven = false;
}
// if(isEven == true)
if (isEven)
{
printf("4는 짝수 입니다.\n");
}
else
{
printf("4는 홀수 입니다.\n");
}
return 0;
}
|
cs |
코드가 매우 비효율 적으로 보이지만 예제를 위함이니 이해해주시면 감사하겠습니다.
이렇게 bool 타입에서 true, false를 if 문에서 사용할 수 있습니다.
if(isEven) 처럼 bool 타입 자체를 넣어도 상관없고
주석 처리한 부분 처럼 if(isEven == true) 이런식으로 if 조건문을 작성해 주셔도 상관없습니다.
코드 스타일에 따라 다른것이기 때문입니다.
이상으로. C언어 bool 타입에 대해서 알아보았습니다.
여러분! C언어에서도 bool 타입 쓸 수 있습니다.
감사합니다.
'<개인공부> > [C언어, C++]' 카테고리의 다른 글
[C언어/C++] printf 출력 함수 정리 및 예제 (4) | 2021.01.28 |
---|---|
[C언어/C++] scanf 입력 함수 총정리 및 예제 (0) | 2021.01.25 |
[C언어/C++] for 반복문 사용법 및 예제 총정리 (5) | 2020.12.28 |
[C언어/C++] while 반복문 설명 및 예제 (0) | 2020.12.25 |
[C언어/C++] islower, isupper 대문자 소문자 확인 (0) | 2020.12.21 |
[C언어/C++] tolower, toupper 대문자 소문자 변경 (1) | 2020.12.16 |
[C언어/C++] isspace 함수 (공백, 탭, 개행을 확인하는 함수) (0) | 2020.12.10 |
[C언어/C++] isalpha 함수 (알파벳을 확인하는 함수) (1) | 2020.12.03 |