티스토리 뷰

주의 사항!

  • 이 글은 제가 직접 공부하는 중에 작성되고 있습니다.
  • 따라서 제가 이해하는 그대로의 내용이 포함됩니다.
  • 따라서 이 글은 사실과는 다른 내용이 포함될 수 있습니다.

 

C와 C++ 모두, 정수 0은 '거짓'을, 그리고 0이 아닌 모든 정수는 '참'을 의미하는 숫자로 정의하고 있습니다. 따라서 참과 거짓의 표현을 위해 다음과 같이 매크로 상수를 정의하는 것이 일반적이었습니다.

#define TRUE 1
#define FALSE 0

 

그러나 C++에서는 참과 거짓의 표현을 위한 키워드 true와 false를 정의하고 있기 때문에 위와 같이 굳이 매크로 상수를 정의해서 사용할 필요가 없습니다. 예제를 통해 확인해 보겠습니다.

#include <iostream>

using namespace std;

int main()
{
	int num = 10, i = 0;

	cout << "true : " << true << endl;
	cout << "false : " << false << endl;

	while (true)
	{
		cout << i++ << ' ';
		if (i > num) break;
	}
	cout << endl;

	cout << "sizeof 1 : " << sizeof(1) << endl;
	cout << "sizeof 0 : " << sizeof(0) << endl;
	cout << "sizeof true : " << sizeof(true) << endl;
	cout << "sizeof false : " << sizeof(false) << endl;

	return 0;
}

/*
실행결과

true : 1
false : 0
0 1 2 3 4 5 6 7 8 9 10
sizeof 1 : 4
sizeof 0 : 4
sizeof true : 1
sizeof false : 1

*/

 

true와 false는 각각 1과 0이 아닙니다. true와 false는 각각 1과 0을 의미하는 '키워드'일 뿐입니다. true와 false는 참과 거짓을 표현하기 위한 1바이트의 데이터입니다. 이들이 정의되기 전에는 참을 표현하기 위해 숫자 1을, 거짓을 표현하기 위해 숫자 0을 사용해왔기 때문에 이 둘을 출력하거나 정수의 형태로 형 변환하는 경우에 각각 1과 0으로 변환되도록 정의되어 있을 뿐입니다. 따라서 위 예제에서 true와 flase를 출력했을 때 각각 1과 0으로 출력되었습니다.

 

true와 false를 가리켜 bool형 데이터라고 합니다. 그리고 bool은 int, double과 마찬가지로 기본 자료형의 하나이기 때문에 bool형 변수를 선언하는 것이 가능합니다. 다음 예제를 통해 살펴보겠습니다.

//functionDeclaration.h 헤더파일로 저장
#ifndef	FUNCTIONDECLARATION_H
#define FUNCTIONDECLARATION_H

bool isPositive(int);

#endif
//functionDefinition.cpp 소스파일로 저장
#include <iostream>
#include "functionDeclaration.h"

bool isPositive(int num)
{
	return (num <= 0) ? false : true;
}
//main.cpp 소스파일로 저장
#include <iostream>
#include "functionDeclaration.h"

using namespace std;

int main(void)
{
	bool isPos;
	int num;
	cout << "Input number : ";
	cin >> num;

	isPos = isPositive(num);
	(isPos) ? cout << "Positive number\n" : cout << "Negative number\n";

	return 0;
}

/*
실행결과

Input number : 54
Positive number

*/

bool형도 기본 자료형이니 int형이나 double형과 같은 자료형을 사용하는것처럼 사용법이 어렵지 않습니다.

'공부 일지 > CPP 공부 일지' 카테고리의 다른 글

C++ | new & delete  (0) 2021.08.01
C++ | 참조자(Reference)  (0) 2021.08.01
C++ | 네임스페이스(namespace)  (0) 2021.07.31
C++ | 인라인(inline) 함수  (0) 2021.07.31
C++ | 매개변수의 디폴트 값  (0) 2021.07.31
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/10   »
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
글 보관함