Eclipse GUID包括警卫

时间:2012-01-04 11:55:30

标签: c++ eclipse header-files

默认情况下,eclipse创建include / header guard,如下所示:

例如test.h

#ifndef TEST_H_
#define TEST_H_
...

我想知道当我们在同一个项目中的不同文件夹(名称空间)下有相同名称的文件时,此约定是否会产生冲突。如果我没有忽略某些东西,当我们遇到这样的情况时,这将是一个问题。我也想知道命名包括警卫时最佳做法是什么。 我已经看到了一些代码示例,其中使用了基于guid的命名,我想知道eclipse是否支持开箱即用,如果没有,任何人都可以建议使用插件。

3 个答案:

答案 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很少使用,最不容易发生爆炸。