Programming/C&C++

[C++]전처리기

다자매_아빠 2005. 11. 23. 19:50
C/C++에서 #으로 시작하는 것은 지시어로써 컴파일러에게 무언가를 알릴 때 사용한다.
대표적인 것이 #include로 컴파일러에게 특정 파일을 포힘시키라고 알리는 역할을 한다.
#ifndef (#ifdef) 와 #endif는 항상 함께 사용되며, 사용법은 다음과 같다.

#ifndef(#ifdef) 이름

내용

#endif

#ifndef는 이름에 해당하는 것이 #define문에 의해 정의되어 있지 않으면 컴파일할 때 내용을 포함시키고, 이름이 정의되어 있으면 포함시키지 말라고 컴파일렁에게 지시한다.
#ifdef 는 #ifndef와 반대로 동작한다. 정의되어 있을 때 포함시킨다.

ex)
#ifndef __CMACHINE_H_INCLUDED__
#define __CMACHINE_H_INCLUDED__
프로그램 내용

#endif

__CMACHINE_H_INCLUDED__이 정의안된 상태라면 그것을 디파인하고 프로그램내용도 사용한다.
이미 정의되었다면 프로그램내용을 포함하지 않고 바로 끝

예 >>>>>>>>>>>>>>>>>

#define DEBUG // 없으면 디버그 표시 X , 있으면 디버그 표시 O

#ifdef DEBUG

fprintf(...);

#endif


예 >>>>>>>>>>>>>>>>>

#define DEBUG // 위에꺼랑 반대

#ifndef DEBUG

fprintf(...);

#endif

'Programming > C&C++' 카테고리의 다른 글

dirent  (0) 2006.01.03
[C++]파일 입출력에 관한 모든 것  (2) 2006.01.03
[C++]어느 클래스 소속의 메소드???  (2) 2005.11.22
[C++]소수점 이하 출력  (1) 2005.11.22
[C++]전형적인 Class의 정의  (0) 2005.11.16