8

我正在做一个项目,我对一个问题感到震惊。

我有 3 个 library.h,其中包含另一个特殊的 library,defines.h,但是在我的 Main 模块中,我想只包含一次所有的库,我的意思是,我想测试该库definitions.h是否已经被包含,并包含它与否取决于结果。

就像是

If !(#include"definitions.h")
(#include"definitions.h")
4

3 回答 3

17

您正在寻找包括警卫。

例子,

#ifndef DEFINITIONS_H 
#define DEFINITIONS_H 
...
...

#endif
于 2013-06-08T15:32:15.987 回答
7
#ifndef DEFINITIONS_H
#define DEFINITIONS_H
//lots of code
//
//
//
//
#endif

还有 non-standard #pragma once,请参阅Is #pragma once a safe include guard?

于 2013-06-08T15:32:41.803 回答
2

如果您的标头语法正确,这应该不是问题。其实这就是你写的原因

#ifndef _DEFINITIONS_H
#define _DEFINITIONS_H
[header content]
#endif

因此,如果您的标头符合 C 约定,那么您应该没问题。

于 2013-06-08T15:35:02.023 回答