다음 코드로 설명을 하죠. 앞의 숫자는 쉽게 이해하기 위해 임시로 적어 놓은 라인 번호입니다.
_______________________________
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:}
--------------------------------
이정도면 충분히 이해하실거라 생각합니다. =)
참고로 _DEBUG는 실제로 Visual C에서 디버그 모드에서 기본으로 포함시키는 이름으로 디버그 모드에서만 실행시키고 쉽은 디버그 전용 코드를 #ifdef _DEBUG ~ #endif로 감싸서 사용합니다.
'programmming tips' 카테고리의 다른 글
각종 시험의 덤프 사이트 올라와 있는 사이트 (0) | 2012.09.18 |
---|---|
man pages (0) | 2011.07.26 |
int main(int argc, char *argv[]) 이해하기 (0) | 2011.07.26 |
unix 고급프로그래밍 에서 컴파일 기반다지기 (1) | 2011.07.25 |