2011-01-22 2 views
0

: 헤더 가드에서 http://www.learncpp.com/cpp-tutorial/110-a-first-look-at-the-preprocessor/C++ -이 헤더가 두 번 나타나지 않게하려면 어떻게해야합니까? 에서

, 그 코드 조각이 있습니다

add.h :

#include "mymath.h" 
int add(int x, int y); 

subtract.h :

#include "mymath.h" 
int subtract(int x, int y); 

MAIN.CPP :

#include "add.h" 
#include "subtract.h" 

main.cpp#include "mymath.h"이 두 번 나타나지 않게하려면 어떻게해야합니까?

감사합니다.

+0

왜 두 번 포함시키지 않으시겠습니까? – sth

+2

include guard의 요점은 전처리 기가 동일한'#include '를 두 번 이상 보지 못하게하는 것이 아니라 mymath.h의 실제 코드가 두 번 포함되지 않도록하는 것입니다. mymath.h에 가드가 포함되었다고 가정하면 괜찮습니다. –

+6

답변은 실제로 해당 자습서의 다음 단락에 있습니다. 왜 그 질문을 여기에 묻는거야? –

답변

4

내부 MS VC++ 또는 표준 방법

를 사용의 #pragma합니다. mymath.h 파일은 다음과 같아야합니다.

모든 헤더 파일은이 기본 형식을 따라야합니다. 이렇게하면 헤더 파일이 필요한 모든 파일 (헤더 파일과 소스 파일 모두)에 포함될 수 있지만 실제 선언은 각 소스 파일에 한 번만이 포함됩니다.

1

헤더 가드는 mymath.h의 헤더에 두어야합니다.

4

사용은 한 번 당신이 바로 그 예를 아래 라인을 설명 mymath.h

#ifndef MYMATH_H 
#define MYMATH_H 

[code here] 

#endif // MYMATH_H 
2

모두의 헤더 파일에 헤더 가드이 있으면 두 번 포함하면 정상입니다. 두 번째 및 모든 후속 포함 물은 빈 줄을 추가하기 만하면 코드 중복이 발생하지 않습니다. mymath.h에도 헤더 가드가 있는지 확인하십시오.