C++/Function & Grammer
C/C++ : #ifdef 와 #endif
채애
2021. 11. 21. 22:51
C/C++ 에서의 # 은, '컴파일러 지시자' 이다.
예를 들어 #include , #define, #ifdef, #endif, #if 등이 있다.
그럼 #ifdef 와 #endif 는 ?
ifdef ~ endif 영역은 ifdef 바로 뒤에 매크로가 정의되어 있을 때만 컴파일 된다.
(1)
#ifdef __Study__
#include "study.h"
#endif
(2)
#ifdef __Play__
Play();
#endif
이 코드는,
(1) #define __Study__ 가 있으면, #include "study.h" 를 한다는 의미이다.
(2) #define __Play__ 가 있으면, Play 함수를 사용한다는 의미이다.
함수 밖에서/안에서 모두 사용 가능하다.
보통은 define 매크로가 되지 않으면, 해당 헤더파일이 include 되지 않기 때문에
해당 매크로가 한 번도 사용되지 않는다면 인스턴스도 생성하지 않아서 싱글톤 패턴 (Singleton Pattern) 에서도 많이 쓰이는 듯 한다.
코드 분석 중에 굉장히 많이 나오는 거라 간단하게 정리해보았다.