티스토리 뷰

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) 에서도 많이 쓰이는 듯 한다.

 

 

 

 

 

코드 분석 중에 굉장히 많이 나오는 거라 간단하게 정리해보았다.

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

C++ : ref (참조)  (2) 2022.02.05
C++ : 데이터 타입 변환  (0) 2022.02.05
C++ : 메모리 구조 - Data 영역  (0) 2022.02.04
C++ : Cast (캐스트) 연산자  (0) 2021.11.22
댓글