第一個小問題:為什么要分.h和.c文件?
首先要先弄清.c和.h代表什么,.c是源文件,.h是頭文件,在我看來源文件就是寫的整個代碼,而頭文件是我們在有很多源文件時會有很多相同定義和很多重復使用的函數,這時候用一個頭文件來放在一起。簡而言之,我想之所以要分這兩種文件的意思就在好管理和使用定義和函數。
第二個小問題:這樣有什么好處?
我也沒使用過,沒辦法親自體會它有什么好處,查閱資料得知,這樣的好處是“解決文件編譯時重復聲明即聲明變更繁雜的問題。”
我設想了一下整個編譯過程,首先就是寫好幾個源文件,這時如果每個文件都有相同的定義或者函數,就要每個文件一次寫上去,這就很麻煩了,之后如果出現定義亂了,還要一次改來改去,實在是太麻煩,這還不是最恐怖的,如果在所有寫好編譯后,還發現有定義不合適還要依次每個源文件去找去改,這太麻煩了。
第一個大問題的第一個小問題:能不能把函數及變量的聲明放在源文件里?
根據我打代碼的經歷來說,最開始都要聲明函數和變量,從來沒有過.h文件,所以我覺得是可以的。
第一個大問題的第二個小問題:能不能把函數和變量的定義放在頭文件里?
在最開始問題里,就知道頭文件是用來聲明好多個源文件相同的函數和變量的聲明,而不是定義,定義應該是在源文件中單獨定義的,就像是定義函數一樣,單獨定義,然后在最開頭來聲明一下,就可以用了。所以,答案是不能。
第一個大問題的第三個小問題:能不能在兩個頭文件里都聲明同一個函數或者變量?
有點不懂,想了一下,如果要聲明這個函數或者變量,那要在哪里定義它們,才能在編譯的時候找到它的源代碼?所以,應該不可以吧。
第一個大問題的第四個小問題:能不能在兩個源文件里都定義同一個函數或者變量?
首先我覺得函數可以的。其次關於變量我覺得定義全局變量就好了吧。