IT 개발 노트/PROGRAMMING

[C++] 헤더 중복 방지 기법

뺄칸 2025. 5. 29. 14:49

코드를 작성할 때, 헤더 파일이 여러 번 포함되면 중복 선언으로 인해 컴파일 속도 저하와 오류가 발생할 수 있습니다. 

이를 방지하기 위해 두 가지 방법이 일반적으로 사용됩니다.

 

Include Guard

헤더 파일이 여러 번 포함되더라도 한 번만 컴파일되도록 하는 방법으로 #define문을 사용합니다.

#ifndef HEADER_H
#define HEADER_H

// 코드 (Code...)

#endif

코드 해석

  • 만약 HEADER_H가 정의되어 있지 않다면,
  • HEADER_H를 정의하여 아래 코드 중복을 방지한다.

 

지시자 - #pragma once

#define보다 간결한 방법으로 중복 선언을 하지 않도록 처리하는 효과는 동일합니다.

#pragma once

// 코드 (code...)

두 방법 모두 헤더 중복을 방지하는 데 효과적이며, 일부 개발자는 두 가지 방법을 혼합하여 사용하기도 합니다. 

#pragma once는 더 직관적인 방식이지만, 모든 환경에서 완벽하게 동작하는 것은 아니므로 Include Guard를 함께 사용하는 경우도 있습니다.