본문 바로가기
Programming/C/C++

헤더파일 중복 방지( inclusion guard / #pragma once )

by bbolmin 2012. 4. 23.

대형 소프트웨어 개발 프로젝드들에서 소스파일이나 헤더파일에서 헤더 파일을 중복해서 포함시키는 경우 컴파일 에러가 발생하게 됩니다.

 

이 문제를 해결하기 위한 방법으로

1. inclusion guard

2. #pragma once

를 사용할 수 있습니다.

 

 

1. inclusion guard

#ifndef AAA_H
#define AAA_H

..(헤더 파일 내용)..

#endif 

만약  AAA가 정의되어 있지않으면(현재 헤더파일이 한번도 포함되지 않았을 경우)

AAA를 정의하고(헤더파일이 한번 포함됨을 정의) 헤더 파일을 포함하게 됩니다.

 

 

2. #pragma once

#pragma once

...(헤더 파일 내용)...

#pragma once는 한 번만 include 하라는 옵션입니다.

 

 


 

첫 번째 방법은 한번 include한 헤더파일도 계속 열어서 검사하므로 컴파일 속도가 느려진다는 단점이 있습니다.

두 번째 방법은 한번 include하면 다시 읽지 않아도 되므로 컴팡리 속도가 첫 번째 방법에 비해 빠릅니다. 그러나 구형 컴파일러에서는 지원해주지 않는 기능입니다.

 

 

'Programming > C/C++' 카테고리의 다른 글

프로그램 종료2 - atexit(), _exit()  (0) 2012.05.03
프로그램 종료 - assert(), exit(), abort()  (0) 2012.05.02
PF_INET와 AF_INET  (3) 2012.04.30
cin.fail cin.clear cin.ignore  (3) 2012.04.20
c++ 파일 입출력 (fstream)  (0) 2012.04.07