본문 바로가기

C++

C++ 조건부 컴파일

조건부 컴파일

해진 조건에 따라서 코드의 컴파일 여부를 제어하는 전처리기.

WinAPI용 코드를 리눅스에서 사용 제한하게 하는 것처럼 특정 플랫폼이나 OS에 특화된 코드를 구분하는 경우.

디버깅이나 테스트 코드 용도로 추가된 코드를 구분하는 경우.

 

조건부 컴파일사용하기(1)

#if, #elif, #else, #endif

사용법은 평상시 사용하는 if문과 별로 크게 차이점은 없다.

다만 그 비교대상이 매크로일뿐이다. 일반 변수는 사용할수 없다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 
#define value 5
 
void main()
{
#if value > 3
    {
        cout << value << endl;
    }
#elif value < 3
    {
        cout << value << endl;
    }
#else
    {
        cout << value << endl;
    }
#endif
 
}
cs

1행 : 매크로 지정

5~13행 : 이반 if문과 동일하다 다만 else if는 elif로 간략화 되었다.

17행 : if의 끝을 알려준다. #if를 사용하면 마지막 위치에 무조건 #endif를 꼭 넣어야된다.

 

 

조건부 컴파일사용하기(2)

#ifdef,

해당 매크로가 있는지 검사한다.

1
2
3
4
5
6
7
8
9
10
11
 
#define Test
 
void main()
{
#ifdef Test
    {
        cout << "존재한다" << endl;
    }
#endif
 
}
cs

 

 

조건부 컴파일사용하기(3)

#ifndef,

해당 매크로가 없는지 검사한다.

1
2
3
4
5
6
7
8
9
 
void main()
{
#ifndef Test
    {
        cout << "존재하지 않는다." << endl;
    }
#endif
 
}
cs

'C++' 카테고리의 다른 글

C++ Static  (0) 2020.09.15
C++ Const  (0) 2020.09.14
C++ 매크로,매크로 함수  (0) 2020.09.07
C++ 함수포인터  (0) 2020.09.07
C++ 연산자 오버로딩 주의사항  (0) 2020.09.06