C/C++에서 #으로 시작하는 것은 지시어로써 컴파일러에게 무언가를 알릴 때 사용한다.
대표적인 것이 #include로 컴파일러에게 특정 파일을 포힘시키라고 알리는 역할을 한다.
#ifndef (#ifdef) 와 #endif는 항상 함께 사용되며, 사용법은 다음과 같다.
#ifndef는 이름에 해당하는 것이 #define문에 의해 정의되어 있지 않으면 컴파일할 때 내용을 포함시키고, 이름이 정의되어 있으면 포함시키지 말라고 컴파일렁에게 지시한다.
#ifdef 는 #ifndef와 반대로 동작한다. 정의되어 있을 때 포함시킨다.
__CMACHINE_H_INCLUDED__이 정의안된 상태라면 그것을 디파인하고 프로그램내용도 사용한다.
이미 정의되었다면 프로그램내용을 포함하지 않고 바로 끝
대표적인 것이 #include로 컴파일러에게 특정 파일을 포힘시키라고 알리는 역할을 한다.
#ifndef (#ifdef) 와 #endif는 항상 함께 사용되며, 사용법은 다음과 같다.
#ifndef(#ifdef) 이름
내용
#endif
내용
#endif
#ifndef는 이름에 해당하는 것이 #define문에 의해 정의되어 있지 않으면 컴파일할 때 내용을 포함시키고, 이름이 정의되어 있으면 포함시키지 말라고 컴파일렁에게 지시한다.
#ifdef 는 #ifndef와 반대로 동작한다. 정의되어 있을 때 포함시킨다.
ex)
#ifndef __CMACHINE_H_INCLUDED__
#define __CMACHINE_H_INCLUDED__
프로그램 내용
#endif
#ifndef __CMACHINE_H_INCLUDED__
#define __CMACHINE_H_INCLUDED__
프로그램 내용
#endif
__CMACHINE_H_INCLUDED__이 정의안된 상태라면 그것을 디파인하고 프로그램내용도 사용한다.
이미 정의되었다면 프로그램내용을 포함하지 않고 바로 끝
예 >>>>>>>>>>>>>>>>>
#define DEBUG // 없으면 디버그 표시 X , 있으면 디버그 표시 O
#ifdef DEBUG
fprintf(...);
#endif
#define DEBUG // 없으면 디버그 표시 X , 있으면 디버그 표시 O
#ifdef DEBUG
fprintf(...);
#endif
예 >>>>>>>>>>>>>>>>>
#define DEBUG // 위에꺼랑 반대
#ifndef 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 |