`#pragma`는 전처리 구문 중에 하나이며 전처리 구문이란 간단하게 컴파일 이전 단계에 처리해야할 구문이라고 볼 수 있습니다. C++언어세 전처리 구문에는 `#pragma` 외에 대표적으로 `#define` , `#include` 등이 있고 해당 선언들을 보면 선언 앞에 # 기호가 붙어 있는데 C++에서 #기호가 앞에 붙어 있다면 전처리 지시자로 앞서 말했든 컴파일러가 번역을 하기전에 처리할 구문들 이라고 볼 수 있습니다.
#pragma
#pragma는 선언 뒤에 오는 내용에 따라서 전처리기에게 어떤 일을 하라는 명령을 내려줍니다. 선언 형태는 보통 `#pragma ____` 형태를 가지고 있습니다.. 뒤의 공백에 오는 키워드에 따라서 `#pragma`를 통해 실행 되는 기능이 달라지게 됩니다. 대표적으로 `once` , `comment` , `warning` , `message` 정도가 있으며 흔하게 볼 수 있는 구문으로는 `#pragma once` 가 있습니다.
#pragma once
`#pragma once`는 기본적으로 헤더파일을 생성하면 선언되어 있는 것을 볼 수가 있습니다. `#pragma` 뒤에 `once` 구문은 이러한 의미로 사용됩니다.
" 여기에 포함된 코드는 컴파일당 한 번만 포함됩니다."
프로그래밍을 하는 도중에 헤더 파일과 헤더 파일간의 중복 선언을 방지하기 위해서 사용합니다. 예를 들자면 A.h 가 B.h 와 C.h 를 가졌고 D.h가 B.h와 E.h를 가졌을때 A.h 에 D.h를 포함하는 경우에는 의도와 다르게 B.h 가 헤더가 중복 포함되어 에러가 날 수 있는 상황을 방지 막기 위해서 사용합니다.
'C++ Programming > C Basic' 카테고리의 다른 글
| Smart Pointer(스마트 포인터) (1) | 2025.07.31 |
|---|---|
| fmodf, remainderf (0) | 2025.07.20 |
| lvalue, rvalue (0) | 2025.06.02 |
| RTTI (Run-Time Type Information) (0) | 2025.05.27 |
| 포인터 (0) | 2025.02.13 |
