본문 바로가기
컴퓨터/C

[C언어] #if #endif 조건부 컴파일

by Luyin 2013. 2. 20.

1) 조건부 컴파일

전처리문이므로 컴파일되기 전에 조건을 평가하며 코드를 컴파일 대상에 포함시키거나 제외시키는 역할을 한다. 이때 조건의 형태는 여러 가지가 있지만 주로 매크로 상수의 존재 여부나 값에 대한 평가식이 사용된다.

 

#ifdef, #ifndef

2) #if

 

if는 매크로의 값을 평가하거나 여러 가지 조건을 결합하여 컴파일 여부를 결정하는 좀 더 복잡한 전처리문이다

#if 조건1

코드1           // 조건1을 만족하면 코드1을 컴파일

#elif 조건2

코드2           // 조건 2가 만족되면 코드2를 컴파일

#else

코드3           // 둘 다 맞지 않으면 코드 3을 컴파일

#endif

 

(1) 상등, 비교 연산자 사용이 가능하다.

==, != ,  >, <, >=, <=

(2) 비교 대상은 정수 상수만, 실수, 문자열은 안됨

(3) 논리 연산자 사용 가능

 &&, ||, !

ex) #if (LEVEL == 8 && VER != 3)

(4) defined 연산자로 매크로의 존재 여부를 평가 할 수 있다.

ex) #if (LEVEL == 8 || defined(PROFESSIONAL))

ex) #if (defined(_DX_8) || defined(_DX_9))

[출처] #if defined 사용법|작성자 clous02