조건부 컴파일
-> 컴파일을 하는데 조건을 두어 컴파일 할지, 말지를 결정한다.
사용자가 값을 입력하여 컴파일 여부를 결정할 수 없다.
-> 값을 입력하는 시점은 컴파일이 모두 완료된 런타임 시점
(전역 변수나 지역 변수를 통해 비교 불가능)
-> 컴파일 이전에 조건을 비교해야 하기 때문에 전처리기 단계에서 조건을 비교한다.
##1. #if ~ #endif
-> if문을 사용하듯이 사용하면 된다.
-> 조건이 참일 경우 컴파일을 수행한다.
if -> #if
else if -> #elif
else -> #else
#define TEST 1
void main()
{
#if TEST > 0
cout << "TEST는 0보다 크다." << endl;
#endif
}
#if는 기존 if와는 다르게 시작 구간과 종료 구간이 {}안이 아닌 #if를 선언한 시점부터 #endif 이전까지이다.
그래서 #if를 끝내려면 마지막에 #endif를 적어줘야한다.
#2 조건부 컴파일 #ifdef
-> define으로 정의되어 있다면 컴파일을 수행
#define ABCD
void main()
{
#ifdef ABCD
cout << "ABCD는 정의되어 있음" << endl;
#endif
}
#3 조건부 컴파일_#ifndef ~ #endif
-> ifdef의 반대 의미이다.
-> define으로 정의되어 있지 않다면 수행
-> 주로 사용하는 방법은 1회만 수행하길 원할 때 사용한다.
#define ABCD
void main()
{
#ifndef ABCD
cout << "ABCD는 정의되어 있지 않음" << endl;
#endif
}
'Programming > C++ Basic' 카테고리의 다른 글
C++ 레퍼런스 자료형 (0) | 2020.09.08 |
---|---|
C++ 파일 분할(.cpp, .h) (0) | 2020.09.08 |
C++ 매크로(#define) (0) | 2020.09.07 |
C++ 함수 포인터 (0) | 2020.09.07 |
C++ 공용체(union) (0) | 2020.09.07 |