2011-12-22 47 views
3

我有一个VECTOR结构,它包含3个整数i,j和k。我需要在多个头文件中使用这个结构。将所有#define和structs,所有常量移动到单独的标题为“Constants.h”的头文件中,还是应该在每个我当前使用它的头文件中定义相同的结构?将结构/常量保存在单独的头文件中

+1

这是一个头文件。在头文件中声明该结构并将该头包含在其他文件中。 – 2011-12-22 08:15:52

回答

6

这是非常好的做法移动定义为标题,文件,使他们能够在不同的编译单元使用。这可确保所有编译单元始终使用类和常量的相同定义(有关示例,请参阅here以获得更详细的解释)。

然而,它是,但是,不好的做法把它们全部放在一个头文件。这会使所有使用此头文件的编译单元重新编译,即使是完全不相关的更改。你应该把某些东西归在一起 - 不相关的东西应该放在不同的标题中。为方便起见,提供一个包含所有标题的头文件有时很有用,但这种特征只能用于快速原型制作或在仔细考虑其含义之后使用 - 编译时间可能会很快变长。 This answer列出了关于如何组织标题的一些想法。

请注意,您应该尽量避免常量宏在C++ - 喜欢static const T,例如:

static const int foo = 42; 

宏不是类型安全,并可能引入微妙的错误,由于道路被扩展。 This question列举了一些宏实际有用的情况。

+0

一句话,生病时我可以接受 – user680725 2011-12-22 08:22:54

0

这根本不是一个坏习惯。重用代码通常是一种很好的做法。

相关问题