J'ai ces fichiers qui m'ont été donnés pour résoudre et j'ai quelques doutes au sujet de la garde d'en-tête.Comment vérifier si la garde d'en-tête est définie
En
testGuards.h
, il y a une définir comme__HEADER_GUILD_SAFEBOX__
, mais le#ifdef
demande si__GUILD_SAFEBOX__
est défini, donc je ne sais pas si ce#ifdef
devrait poser des questions sur__HEADER_GUILD_SAFEBOX__
au lieu de__GUILD_SAFEBOX__
.En
testCpp.h
je demande si__GUILD_SAFEBOX__
est déjà défini, mais, pour autant que je sais, il est déjà défini danstestGuards.h
, mais ici (en cpp), nous entrons jamais dans le#ifdef
, et je sais pas, comment savoir si n'est pas défini, et s'il n'est pas défini, alors définissez-le.
J'ai 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
Les identificateurs (y compris les noms de macro) contenant un double trait de soulignement sont [réservés à la mise en œuvre] (htt p: //stackoverflow.com/a/228797/501250) (compilateur et bibliothèque standard). ** Vous ne devriez pas les utiliser. ** – cdhowie
Je pense que vous n'êtes pas censé mettre stdafx.h ailleurs que la première ligne du fichier –
@cdhowie Merci beaucoup, est très utile pour moi, j'ai tout lu. J'ai changé __HEADER_GUILD_SAFEBOX__ pour __GUILD_SAFEBOX_H et fonctionne bien. – Alejoo