P rogramming/C Language

#ifdef 와 #ifndef 전처리기

민트앤라떼 2011. 9. 29. 10:44


다음 코드로 설명을 하죠. 앞의 숫자는 쉽게 이해하기 위해 임시로 적어 놓은 라인 번호입니다.
_______________________________
01:#define _DEBUG
02:
03:func()
04:{
05: #ifdef _DEBUG
06: printf("디버그 모드\n");
07: #endif
08:
09: #ifndef _DEBUG
10: printf("일반 모드\n");
11: #endif
12:}
--------------------------------

#ifdef _DEBUG는 _DEBUG가 #define문으로 정의 되어 있다면 아래라인 부터 #endif전 라인까지 포함시키라는 전처리
  지시어입니다.

#ifndef _DEBUG는 _DEBUG가 #define문으로 정의 되어 있지 않다면 아래라인 부터 #endif전 라인까지 포함시키라는 전처리
  지시어입니다.

첫번째 라인에서 #define _DEBUG "_DEBUG"를 정의해 주었으므로
#ifdef _DEBUG ~ #endif사이는 포함이 될것이고 #ifndef _DEBUG ~ #endif 사이는 포함이 안 될것입니다.
아래는 전처리기로 처리된 소스입니다.

_______________________________
02:
03:func()
04:{
06: printf("디버그 모드\n");
08:
12:}
--------------------------------


※ 출처 : http://babuzzzy.tistory.com/entry/ifdef-와-endif-이해하기