대형 소프트웨어 개발 프로젝드들에서 소스파일이나 헤더파일에서 헤더 파일을 중복해서 포함시키는 경우 컴파일 에러가 발생하게 됩니다.
이 문제를 해결하기 위한 방법으로
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 |