조건부 컴파일 지시어(#if, #elif, #else, #ifdef, #ifndef, #endif)
조건부 컴파일 지시어는 지정된 조건에 의하여 프로그램 파일의 특정한 부분을 컴파일하거나 컴파일하지 않게 하는 지시어이다. 조건부 컴파일 지시어의 의미를 알아 보자.
조건부 |
의 미 |
#if 조건 |
#if 다음에 조건이 맞으면 #if와 #endif 사이의 문장들을 컴파일 한다. |
#elif 조건 |
#if, #ifdef, #ifndef의 조건에 맞지 않을 경우 또 다른 조건을 검색하기 위한 지시어로 사용된다. |
#else 조건 |
#if, #ifdef, #ifndef의 조건에 맞지 않을 경우 #else와 #endif 사이의 문장들을 컴파일 한다. |
#ifdef 문자열 |
문자열이 define 되었다면 |
#ifndef 문자열 |
문자열이 define 되지 않았다면 |
#endif |
#조건부 컴파일 지시어를 마치게 해주는 지시어이다. |
다음은 #if 를 이용한 예를 보여준다. 문자열 “SEL”이 define 되었다면 “#define PI 3.14”을 컴파일하고 define 되었다면 컴파일하지 않는다.
#if defined SEL
#define PI 3.14
#endif
다음은 #ifdef를 이용한 예를 보여준다. 문자열 “SEL”이 define 되었다면 “#define PI 3.14”을 컴파일하고 define 되었다면 컴파일하지 않는다.
#ifdef SEL
#define PI 3.14
#endif
다음은 #ifndef를 이용한 예를 보여준다. 문자열 “SEL”이 define 되지 않았다면 “select_function()”을 컴파일하고 define 되었다면 컴파일하지 않는다.
#ifndef SEL
select_function()
#endif
다음은 #if, #elif와 #else를 이용한 예를 보여준다. 문자열 “SEL1”이 define 되었다면 “select_function1()”을 컴파일하고 define 되지 않았다면 문자열 “SEL2”가 define 되었는지 확인하여 “SEL2“가 define 되었다면 ”select_function2()”을 컴파일하고 “SEL2"도 define 되지 않았다면 ”#define PI 3.14“을 컴파일한다.
#if defined SEL1
select_function1()
#elif defined SEL2
select_function2()
#else
#define PI 3.14
#endif
다음은 #ifdef와 #else를 이용한 예를 보여준다. 문자열 “SEL”이 define 되었다면 “select_function()”을 컴파일하고 define 되지 않았다면 ”#define PI 3.14“을 컴파일한다.
#ifdef SEL
select_function()
#else
#define PI 3.14
#endif
'프로그래머의 길 > C & C++' 카테고리의 다른 글
이진 트리로 구현한 문자열, 숫자 정렬 소스 (0) | 2007.03.30 |
---|---|
const의 정확한 이해 (0) | 2007.03.26 |
C로 만든 숫자 야구 프로그램 (0) | 2007.03.24 |
콘솔상에서 상자를 그려 위치 이동시키는 프로그램 (0) | 2007.03.23 |
#define 함수 활용 (0) | 2007.03.23 |