0

在我的项目中,我有一个头文件 common.h,其中包含许多头文件。其中一些文件包括 Common.h 和 Common .h 中已经存在的一些其他头文件,因此在预处理阶段,许多函数被原型化了两次(一次来自包含的标题和来自 Gui.h 的其他)。我想知道从长远来看这会导致任何问题。

请建议..提前谢谢..

4

2 回答 2

4

标头应该包含守卫,以便它们只被处理一次:

#ifndef SOME_UNIQUE_STRING
#define SOME_UNIQUE_STRING

// Everything else here

#endif

“一切”我的意思是“一切”,#include如果有的话,从你的 s 开始。

SOME_UNIQUE_STRING 可以是模块的名称,只要它不太可能与其他地方的另一个定义一致。

如果你查看你的库头文件,你会注意到他们使用了像这样的包含守卫。

于 2013-09-14T12:23:25.620 回答
0

正如 Chemistpp 建议的那样,
#pragma once
是一个不错的尝试选择,尽管它是非标准的。
查看链接中列出的优点和缺点。

于 2013-09-14T12:52:40.807 回答