如何测试之前是否已包含标题

时间:2013-06-08 15:29:14

标签: c macros header-files

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

我有3个libraries.h,其中包含另一个特殊的库,definitions.h,但在我的主模块中,我想只包含所有库一次,我的意思是,我想测试一下库{{1} }已被包括在内,并根据结果包括与否。

这样的东西
definitions.h

3 个答案:

答案 0 :(得分:10)

您正在寻找include guards.

实施例,

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

#endif

答案 1 :(得分:6)

#ifndef DEFINITIONS_H
#define DEFINITIONS_H
//lots of code
//
//
//
//
#endif

还有非标准#pragma once,请参阅Is #pragma once a safe include guard?

答案 2 :(得分:2)

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

的原因
#ifndef _DEFINITIONS_H
#define _DEFINITIONS_H
[header content]
#endif

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