我有这些文件给我解决,我对头部防护有些疑问。如何检查是否定义了头部防护
在
testGuards.h
,有这样定义__HEADER_GUILD_SAFEBOX__
,但#ifdef
询问是否__GUILD_SAFEBOX__
定义,所以我不知道这是否#ifdef
应该问的关于__HEADER_GUILD_SAFEBOX__
代替__GUILD_SAFEBOX__
。在
testCpp.h
我问__GUILD_SAFEBOX__
已经被定义,但是,据我所知,它是在testGuards.h
已经定义,但这里(CPP),我们从来没有进入#ifdef
,我不知道,怎么知道如果没有定义,如果没有定义,然后定义它。
我有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非常感谢,对我非常有用,我收获了所有。 我将__HEADER_GUILD_SAFEBOX__更改为__GUILD_SAFEBOX_H并正常工作。 – Alejoo