Programming/C/C++2012. 4. 23. 01:19

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

 

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

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하면 다시 읽지 않아도 되므로 컴팡리 속도가 첫 번째 방법에 비해 빠릅니다. 그러나 구형 컴파일러에서는 지원해주지 않는 기능입니다.

 

 

Posted by bbolmin

댓글을 달아 주세요