해결하기 위해 나에게 주어진이 파일들이 있으며 헤더 가드에 대해 약간의 의문이 있습니다. testGuards.h
에서헤더 가드가 정의되어 있는지 확인하는 방법
는이
__HEADER_GUILD_SAFEBOX__
같은 정의가 있지만,__GUILD_SAFEBOX__
가 정의되어있는 경우#ifdef
묻는다, 그래서이#ifdef
에 대한__HEADER_GUILD_SAFEBOX__
대신__GUILD_SAFEBOX__
의 요청해야하는지 모르겠어요.testCpp.h
에서방법,
__GUILD_SAFEBOX__
가 이미 정의되어있는 경우 물어하지만, 지금까지 내가 알고, 이미testGuards.h
에 정의 된, 그러나 여기 (CPP)에, 우리는 결코#ifdef
에 입력되지 않고, 나도 몰라 if가 정의되지 않았는지, 정의되어 있지 않으면 정의하십시오.
코드가 2 개 있습니다.
testGuards.h
#ifndef __HEADER_GUILD_SAFEBOX__
#define __HEADER_GUILD_SAFEBOX__
#include "stdafx.h"
#ifdef __GUILD_SAFEBOX__
[...]
#endif
testCpp.cpp
#include "stdafx.h"
#ifdef __GUILD_SAFEBOX__
#include "../common/tables.h"
[...]
#endif
두 개의 밑줄을 포함하는 식별자 (매크로 이름 포함)는 [구현을 위해 예약 됨] (htt p : //stackoverflow.com/a/228797/501250) (컴파일러 및 표준 라이브러리). ** 당신은 그들을 사용해서는 안된다. ** – cdhowie
나는 당신이 stdafx.h를 파일의 첫번째 줄 이외의 다른 곳에 두려고하지 않는다고 생각한다. –
@cdhowie 고마워, 나에게 매우 유용하다. 나는 모두 읽었다. __GUILD_SAFEBOX_H에 대한 __HEADER_GUILD_SAFEBOX__가 변경되어 정상적으로 작동합니다. – Alejoo