我有一個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. C - 如何將自己的頭文件保存在單獨的文件夾中
- 2. 結構在單獨的頭文件導致C++中的問題
- 3. 在單獨的頭文件中的C++結構
- 4. C++單頭文件結構
- 5. 將結構保存到文件
- 6. 將頭文件包含在單獨的文件夾中
- 7. 將Excel文件的每一列保存在單獨的文本文件中
- 8. 保存單獨結構的內存堆分配器庫?
- 9. 如何在python中將RequestsCookieJar結構保存到文件中
- 10. 結構將無法正常工作包含在頭文件時
- 11. 將我的輸出代碼保存到單獨的文件中?
- 12. 頭文件結構
- 13. 批量將文本列表保存到單獨的HTML頁面
- 14. 將c#項目保存爲一個單獨的文本文件?
- 15. 全局常量在django中settings.py以外的單獨文件中?
- 16. 如何將文件結構保存到文本文件?
- 17. ggplot2:將單獨的facet_wrap構面保存爲獨立的構圖對象
- 18. 如何將網頁的組件保存在單獨的文件中
- 19. 基於單獨的列表將文件置於空文件結構中?
- 20. Python PIL將文本保存在單獨的圖像中
- 21. 無法返回在頭文件中聲明的結構向量
- 22. 在頭文件中使用結構C++
- 23. 如何在MySqlWorkbent的單獨sql文件中保存插入sctipts?
- 24. csv python文件沒有保存在單獨的行中
- 25. Go中的常量結構
- 26. scp,文件結構保存不一致
- 27. 是否可以將NDbUnit測試數據保存在單獨的XML文件中?
- 28. 是否有任何理由將WCF接口保存在單獨的文件中?
- 29. 將第二行後的表結構保存到變量中?
- 30. 將結構保存在二進制文件中並只讀取C++中的值
這是一個頭文件。在頭文件中聲明該結構並將該頭包含在其他文件中。 – 2011-12-22 08:15:52