본문 바로가기
프로그래밍/C언어

전처리기(4)

by 리뷰하는 (게임)프로그래머_리프TV 2010. 3. 10.



조건부 컴파일 지시자에 대해서 알아 보자.

#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문과 비슷, 더 설명은 필요 없을듯.

이것 말고도 전처리기는 매우 많지만,
일단 이정도면 알고 있어도 뭐 충분할듯.

'프로그래밍 > C언어' 카테고리의 다른 글

문자열 함수들 str___  (0) 2010.03.11
enum  (0) 2010.03.11
전처리기(3)  (0) 2010.03.10
전처리기(2)  (0) 2010.03.10
전처리기(1)  (0) 2010.03.10