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

标签 c++ c include-guards

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

最近看到一个混合编译的项目(CUDA + GCC),故意留下一个头文件(CUDA文件)没有include guard。我只是好奇。

最佳答案

我想到了两种情况:

  1. 当您想要打开/关闭调试功能时(如 assert.h 的工作原理)
  2. 'x-macro'包含文件的功能类型执行 2 个部分的问题,例如定义一个枚举,然后定义一个与枚举对应的字符串化名称数组

关于c++ - 什么时候不在头文件中使用包含保护?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6793161/

相关文章:

c++ - 在哪里可以找到 "Introduction to 3D game programming with DirectX 9.0c"的源代码示例?

c - 如何使用 strtok() 从文本文件中读取并创建结构?

C++ - 如何避免此 header 出现两次?

c++ - 代码守卫失败

c++ - 通过初始化列表或变量推回结构数组

c++ - Visual Studio 2010 中的 boost::thread 编译错误

c++ - 将前 n 个质数保存在数组中而不覆盖它

c - 尝试在控制台上进行子类化

c - 我无法声明一个非常基本的函数

c++ - 使用#ifdef 时的多个定义