더북(TheBook)

다음과 같이 파일 이름을 큰따옴표로 쓰면,

#include "herberts_math_functions.hpp"

컴파일러는 일반적으로 현재 디렉터리에서 먼저 검색한 다음 표준 경로에서 검색한다.* 이는 홑화살괄호(< >)로 인용하고 현재 경로를 검색 경로에 추가하는 것과 같다. 어떤 사람들은 홑화살괄호는 시스템 헤더에서만 사용해야 하고 사용자 헤더는 큰따옴표를 사용해야 한다고 주장한다.

이름 충돌을 피하기 위해 종종 include의 상위 디렉터리를 검색 경로에 추가하고 지시문에서 상대 경로를 사용한다.

#include "herberts_includes/math_functions.hpp"
#include <another_project/more_functions.h>

슬래시는 이식성이 뛰어나며 하위 디렉터리가 백 슬래시로 표시된다는 사실에도 불구하고 윈도에서도 잘 동작한다.

포함 방지: 간접적인 포함으로 인해 자주 사용하는 헤더 파일이 하나의 번역 단위에 여러 번 포함될 수 있다. 금지된 반복을 피하고 텍스트 확장을 제한하기 위해 소위 포함 방지(Include Guard)는 첫 번째로 포함할 때만 수행하도록 한다. 이 방지는 특정 파일을 포함하는 일반 매크로다. 일반적인 포함 파일은 다음과 같다.

// 작성자: 나
// 라이선스: 읽을 때마다 100달러 지불
#ifndef HERBERTS_MATH_FUNCTIONS_INCLUDE
#define HERBERTS_MATH_FUNCTIONS_INCLUDE
#include <cmath>
double sine(double x);
...
#endif // HERBERTS_MATH_FUNCTIONS_INCLUDE

 

* 그러나 큰따옴표로 묶인 파일 이름으로 검색되는 디렉터리는 구현에 따라 다르며 표준을 통해 규정되지 않았다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.