首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >什么时候不在头文件中使用包含保护?

什么时候不在头文件中使用包含保护?
EN

Stack Overflow用户
提问于 2011-07-23 00:35:08
回答 3查看 3K关注 0票数 18

我们都知道什么时候应该使用include guard,但是什么时候我们不应该在项目中使用它呢?

最近,我看到了一个混合编译(CUDA + GCC)的项目,其中一个头文件(CUDA文件)故意没有包含保护。我只是对它很好奇。

EN

回答 3

Stack Overflow用户

发布于 2011-07-23 00:44:05

一种情况是,您确实希望使用不同的参数多次包含同一文件。在这种情况下,包含文件将充当一种模板。Dosbox上的scalers就是一个例子。

票数 3
EN

Stack Overflow用户

发布于 2015-09-17 18:30:10

在我们的项目中,我们从不使用include guard。我们使用的是include antiguard:

代码语言:javascript
复制
#ifndef _stdafx_h_
#define _stdafx_h_
#else
#error reinclude stdafx.h
#endif

因为如果您重新包含相同的头文件--您编写了错误的代码或使用了错误的体系结构。

票数 3
EN

Stack Overflow用户

发布于 2011-07-23 00:44:18

包含保护的使用使得包含文件可以在单个编译单元中被多次包含,而不会导致重复声明。

当文件应该多次包含在单个编译单元中,并且这不会导致重复声明时,请不要使用包含保护。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6793161

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档