더북(TheBook)

1.9.2.3 조건부 컴파일

전처리기 지시문의 사용이 중요하고 또한 필요하다고 느낄 수 있는 경우 중 하나는 조건부 컴파일을 제어하는 경우다. 전처리기는 분기를 위해 #if, #else, #elif#endif 지시문을 제공한다. 조건은 비교, 정의나 논리 표현식 검사일 수 있다. #ifdef#ifndef는 각각 다음 코드를 합쳐 놓은 지시문이다.

#if defined(매크로_이름)
#if !defined(매크로_이름)

정의 검사를 다른 조건과 결합할 때에는 긴 형태가 사용된다. 마찬가지로 #elif#else#if를 합쳐놓은 지시문이다.

우리가 완벽한 세계에 살고 있다면 표준 호환되면서 이식성 있는 C++ 프로그램만 작성하면 된다. 하지만 실제로 이식성이 없는 라이브러리를 사용해야 하는 경우가 종종 있다. 윈도에서만 사용할 수 있는 라이브러리, 더 정확하게는 비주얼 스튜디오에서만 사용할 수 있는 라이브러리가 있다고 가정해 보자. 다른 모든 컴파일러에는 대체 라이브러리가 있다. 플랫폼에 의존하는 구현을 위한 가장 간단한 방법은 다른 컴파일러에 대한 대체 코드 조각을 제공하는 방법이다.

#ifdef _MSC_VER
    ... 윈도 코드
#else
    ... 리눅스/유닉스 코드
#endif
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.