본문 바로가기
프로그래밍 언어/c(일반)

조건부 매크로 컴파일 (#ifdef #ifndef)

by [Akashic Records] 개발의선지자 2025. 2. 5.

이번 포스팅에서는 자주 사용하는 매크로중 하나인 조건부 매크로 컴파일 사용법에 대해 정리하고자 한다.

 

프로젝트 상 특별 경우에만 해당 코드를 실행해야할 경우가 많다. 

예를 들어 디버깅용 printf문 나 특정 기기에서는 특정 기능 등이다.

 

이번 포스팅에서는 #ifdef #ifndef 조건부 매크로 컴파일에 대해 정리 하고자 한다.

 

#ifdef

1) 형태

#ifdef 문자열

(#else)

#endif 

2) 의미

#define문으로 해당 문자열이 정의되어 있다면 #ifdef 문에서 선언된 코드를 실행한다.

3)예시

#define A
#define B	0
#define C	1

#ifdef A // #define 되있기 때문에 실행 
printf("Hello A");
#ifdef B // #define 되있기 때문에 실행 
printf("Hello B");
#ednif
#ifdef C // #define 되있기 때문에 실행 
printf("Hello C");
#endif 

#ifdef D // #define 되어 있지 않기에 미실행
printf("Hello D");
#endif

 

#ifndef

1) 형태

#ifndef 문자열

(#else)

#endif 

2) 의미

#define문으로 해당 문자열이 정의되어있지 않다면  #ifndef 문에서 선언된 코드를 실행한다.