我们都知道什么时候使用 include 守卫,但是我们什么时候不应该在我们的项目中使用它呢?
最近看到一个混合编译的项目(CUDA + GCC),故意留下一个头文件(CUDA文件)没有include guard。我只是好奇。
最佳答案
我想到了两种情况:
- 当您想要打开/关闭调试功能时(如
assert.h
的工作原理) - 为'x-macro'包含文件的功能类型执行 2 个部分的问题,例如定义一个枚举,然后定义一个与枚举对应的字符串化名称数组
关于c++ - 什么时候不在头文件中使用包含保护?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6793161/