언어/C++

[C++] #pragma once와 #ifndef ~ #endif

겜도리도리 2021. 12. 26. 21:49
반응형

컴파일시에 C++의 #include는 해당 헤더의 내용이 복사되어 들어오게 된다.

 

이 때, 같은 내용의 헤더가 두 번 이상 복사될 수 있는데, 이것을 막아주는 게 #pragma once와

#ifndef ~ #endif이다.

 

차이점은 다음과 같다.

#pragma once는 컴파일 동안 단 한 번만 처리를 하므로 더 빠른 컴파일이 가능해진다.

단, 일부 구형 컴파일러에서는 지원이 안 되는 경우도 있다.

 

#ifndef는 if not defined의 약자이다. 정의하지 않았다면 #define 부터 #endif 까지의 코드를 include 한다.

#ifndef EXAMPLE_H
#define EXAMPLE_H

#endif

 

반응형

'언어 > C++' 카테고리의 다른 글

[C++] Inner Class (중첩 클래스, Nested Class)  (0) 2022.01.06
[C++] Iterator  (0) 2021.12.30
[C++] shared_ptr 직접 구현해보기  (0) 2021.12.16
[C++] 스마트 포인터  (0) 2021.12.15
[C++] string 클래스 정리  (0) 2021.12.09