Ich habe diese Dateien, die mir gegeben wurden, zu lösen, und ich habe einige Zweifel über Header Guard.Wie überprüfen, ob Header Guard definiert ist
In
testGuards.h
gibt es eine wie__HEADER_GUILD_SAFEBOX__
definieren, aber die#ifdef
fragt, ob__GUILD_SAFEBOX__
definiert ist, so dass ich weiß nicht, ob dies#ifdef
sollte etwa__HEADER_GUILD_SAFEBOX__
statt__GUILD_SAFEBOX__
fragen.In
testCpp.h
ich fragen, ob__GUILD_SAFEBOX__
bereits definiert ist, aber so weit ich weiß, ist es bereits intestGuards.h
definiert, aber hier (in CPP), wir geben nie in die#ifdef
, und ich weiß nicht, wie man weiß, ob es nicht definiert ist, und wenn es nicht definiert ist, dann definiere es.
Ich habe 2 Codes.
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
Bezeichner (einschließlich Makronamen), die einen doppelten Unterstrich enthalten, sind [für die Implementierung reserviert] (htt p: //stackoverflow.com/a/228797/501250) (Compiler und Standardbibliothek). ** Sie sollten sie nicht verwenden. ** – cdhowie
Ich denke, Sie sind nicht dazu gedacht, stdafx.h irgendwo anders als die erste Zeile der Datei –
@cdhowie Vielen Dank, ist sehr nützlich für mich, ich readed alle. Ich änderte __HEADER_GUILD_SAFEBOX__ für __GUILD_SAFEBOX_H und funktioniert gut. – Alejoo