///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
#ifdef, #ifndef, #endif, #else, #if,.. 와 같은 지시어를 전처리기(Preprocessor)라 한다.
#ifdef는 if defined를 줄인 말이다. #ifndef는 #ifdef와는 반대로 if not defined를 의미한다.
#if, #elif, #else의 사용법은 if~ else if~ else를 사용하는 방법과 매우 유사하다.
이와 같은 전처리기는 헤더파일의 중복을 방지하거나 조건부 컴파일이 필요한 경우에 사용한다.
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
#if A
...
#elif B
...
#else
...
#endif
A인 경우 아래 구문들을 처리하고, B인 경우 그 아래의 구문들을 처리하고
A와 B 조건 모두 아닌 경우, #else 아래의 구문들을 처리한다.
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
#ifdef A
...
#endif
A가 정의(#define)되어 있다면, 아래 구문을 처리하도록 한다.
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
#ifndef A
...
#endif
A가 정의되어 있지 않다면, 아래 구문을 처리하도록 한다.
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
#ifdef A
...
#else
...
#endif
A가 정의되어 있다면, #else 전까지의 구문을 처리하지만
A가 정의되어 있지 않다면, #else 이후의 구문을 처리하도록 한다.
'language > C|C++' 카테고리의 다른 글
데이터 상수화, 포인터 상수화 (0) | 2016.07.21 |
---|---|
SwitchViewDemo (0) | 2016.06.06 |
디폴트 대입연산자에 의한 문제점 (0) | 2016.05.07 |
#pragma (0) | 2016.05.02 |
인라인(Inline) 함수 (0) | 2016.05.02 |