c 包含標頭檔案好還是重新定義好

2021-09-06 16:57:25 字數 469 閱讀 9225

a.h

structa;

b.cpp

在b.cpp裡面用到這個結構體

有兩種方法

1.自己定義乙個一模一樣的結構體

structa;

2.包含a.h標頭檔案

第一種感覺有點蛋疼同樣的結構體定義兩次,是不是重複了

第二種包含別人的標頭檔案,會帶來編譯的小麻煩,而且這樣模組之間的關聯性變大了,感覺也不好

大家覺得哪種方法好?為什麼呢?

不要重**明輪子 , 除非這個輪子滿足不了你的需求

先問乙個問題,如果別人改了struct a,比如刪掉了int b或者加了個int c,那你的b.cpp是不是也要改?

如果是,那麼包含a.h比較好。不管是編譯的小麻煩,還是模組之間的關聯性,都不是你的**或者設計帶來的問題,而是根本無法避免的。

看了這兩個回答後,還是包含標頭檔案好

c 包含標頭檔案好還是重新定義好

a.h structa b.cpp 在b.cpp裡面用到這個結構體 有兩種方法 1.自己定義乙個一模一樣的結構體 structa 2.包含a.h標頭檔案 第一種感覺有點蛋疼同樣的結構體定義兩次,是不是重複了 第二種包含別人的標頭檔案,會帶來編譯的小麻煩,而且這樣模組之間的關聯性變大了,感覺也不好 大...

c 包含自定義標頭檔案

在c 中自定義的庫通過原始碼復用的方式在其他專案中使用,需要新增相應的標頭檔案,有以下幾種方式在其他專案中包含自定義的標頭檔案 將自定義庫的標頭檔案 h 與原始檔 cpp 複製到當前專案資料夾下,然後在專案距中使用 include headerfile.h 即可 缺點是每個新專案都要去複製標頭檔案與...

C 標頭檔案包含變數時,多重定義問題!

multiple definition of 在標頭檔案中.h中包含有變數定義的時候,一般是想作為全域性變數來使用,但是使用中總是出現multiple definition of的問題,看一下 oracleinfclass.h ifndef oracleinfclass h define oracl...