조건부 컴파일 지시자에 대해서 알아 보자.
#ifdef - #endif
#include <stdio.h>
#define MAX 10
void main()
{
#ifdef MAX
// MAX가 지정이 되어 있기 때문에 실행한다.
printf( "%d\n", MAX );
#endif
}
실행 결과 = 10
#ifndef - #endif
#include <stdio.h>
void main()
{
#ifndef MAX
// MAX가 지정이 되어 있지 않기 때문에 실행한다.
printf( "%d\n", 10 );
#endif
}
주로 ifndef는 한번만 실행하기 위해서(특히 헤더파일 추가에 대해서) 많이 사용하게 되는데.
사용은 다음과 같이 하면 된다.
#ifndef _TEST_H_
#define _TEST_H_
// 이제부터는 아무리 많이 헤더를 호출해도 더이상은 문제 없다.
#endif
#if - #endif
#include <stdio.h>
#define RUN 1
#define NORUN 0
void main()
{
#if RUN
// 값이 참이라면(변수, 함수는 올 수 없다.) 실행
printf( "RUN!!\n" );
#endif
#if NORUN
// 값이 참이라면(변수, 함수는 올 수 없다.) 실행
printf( "NoRUN!!\n" );
#endif
}
실행 결과 = RUN!!
#if - #elif - #else - #endif
#include <stdio.h>
#define RUN 0
#define NORUN 0
void main()
{
#if RUN
// 값이 참이라면(변수, 함수는 올 수 없다.) 실행
printf( "RUN!!\n" );
#elif NORUN
// 값이 참이라면(변수, 함수는 올 수 없다.) 실행
printf( "NoRUN!!\n" );
#else
// 모든 값이 다 거짓이라면 실행
printf( "NOT!!\n" );
#endif
}
실행 결과 = NOT!!
if문과 비슷, 더 설명은 필요 없을듯.
이것 말고도 전처리기는 매우 많지만,
일단 이정도면 알고 있어도 뭐 충분할듯.