我有一个VECTOR结构,它包含3个整数i,j和k。我需要在多个头文件中使用这个结构。将所有#define和structs,所有常量移动到单独的标题为“Constants.h”的头文件中,还是应该在每个我当前使用它的头文件中定义相同的结构?将结构/常量保存在单独的头文件中
3
A
回答
6
这是非常好的做法移动定义为标题,文件,使他们能够在不同的编译单元使用。这可确保所有编译单元始终使用类和常量的相同定义(有关示例,请参阅here以获得更详细的解释)。
然而,它是,但是,不好的做法到把它们全部放在一个头文件。这会使所有使用此头文件的编译单元重新编译,即使是完全不相关的更改。你应该把某些东西归在一起 - 不相关的东西应该放在不同的标题中。为方便起见,提供一个包含所有标题的头文件有时很有用,但这种特征只能用于快速原型制作或在仔细考虑其含义之后使用 - 编译时间可能会很快变长。 This answer列出了关于如何组织标题的一些想法。
请注意,您应该尽量避免常量宏在C++ - 喜欢static const T
,例如:
static const int foo = 42;
宏不是类型安全,并可能引入微妙的错误,由于道路被扩展。 This question列举了一些宏实际有用的情况。
+0
一句话,生病时我可以接受 – user680725 2011-12-22 08:22:54
0
这根本不是一个坏习惯。重用代码通常是一种很好的做法。
相关问题
- 1. 将常用功能保存在单独的cs文件中? (C#)
- 2. C - 如何将自己的头文件保存在单独的文件夹中
- 3. 结构在单独的头文件导致C++中的问题
- 4. 在单独的头文件中的C++结构
- 5. NMAP将结果保存到单独的文件中
- 6. FileNotFoundException将文件保存在两个单独的文件夹中
- 7. C++单头文件结构
- 8. 返回结构并保存在不同的.c文件的结构变量中
- 9. 将结构保存到文件
- 10. 将页面代码保存在单独的文件中
- 11. 将HTMLPurifier配置保存在单独的文件中(使用Codeigniter)
- 12. MSBuild - 将ItemGroup保存在单独的文件中
- 13. 将头文件包含在单独的文件夹中
- 14. 将Excel文件的每一列保存在单独的文本文件中
- 15. 保存单独结构的内存堆分配器库?
- 16. 如何在python中将RequestsCookieJar结构保存到文件中
- 17. 结构将无法正常工作包含在头文件时
- 18. 将我的输出代码保存到单独的文件中?
- 19. 头文件结构
- 20. 将MySQL结果存储在单独的PHP变量中
- 21. 写单元测试并保存在单独的文件夹中
- 22. 将结构保存在一个文件中
- 23. 如何将每个文件的标记化结果保存在新的单独文本文件中?
- 24. 批量将文本列表保存到单独的HTML页面
- 25. 如何在MATLAB中将结构变量值保存为.csv文件
- 26. 将c#项目保存为一个单独的文本文件?
- 27. 如何将文件结构保存到文本文件?
- 28. 全局常量在django中settings.py以外的单独文件中?
- 29. ggplot2:将单独的facet_wrap构面保存为独立的构图对象
- 30. 如何将网页的组件保存在单独的文件中
这是一个头文件。在头文件中声明该结构并将该头包含在其他文件中。 – 2011-12-22 08:15:52