默认情况下,eclipse创建include / header guard,如下所示:
例如test.h
#ifndef TEST_H_
#define TEST_H_
...
我想知道当我们在同一个项目中的不同文件夹(名称空间)下有相同名称的文件时,此约定是否会产生冲突。如果我没有忽略某些东西,当我们遇到这样的情况时,这将是一个问题。我也想知道命名包括警卫时最佳做法是什么。 我已经看到了一些代码示例,其中使用了基于guid的命名,我想知道eclipse是否支持开箱即用,如果没有,任何人都可以建议使用插件。
答案 0 :(得分:0)
如果你使用一个相当现代的编译器,你可以用更优雅的指令#pragma一次替换这些守卫。
看看像Boost文件这样的东西,他们对标题保护有一些约定。
答案 1 :(得分:0)
如果文件名可以出现在多个文件夹或命名空间中,您当然也可以在包含保护中包含命名空间。
无论如何,命名空间和类名的组合必须在项目中足够独特。
在MyNamespace / MyClass.h
中#if !defined MYNAMESPACE_MYCLASS_H_INCLUDED
#define MYNAMESPACE_MYCLASS_H_INCLUDED
...
#endif
答案 2 :(得分:-1)
名称在所有头文件中应该是唯一的。 XXXX_H_很常见,_XXXX_H也是如此。 GUID很少使用,最不容易发生爆炸。