原始檔和標頭檔案的區別
阿新 • • 發佈:2019-02-07
標頭檔案和原始檔在本質上沒有任何區別。
只不過一般:字尾為 .h 的檔案是標頭檔案,內含函式宣告、巨集定義、結構體定義等內容。
字尾為 .c 的檔案是原始檔,內含函式實現,變數定義等內容。而且是什麼字尾也沒有關係,只不過編譯器會預設對某些字尾的檔案採取某些動作。這樣分開寫成兩個檔案是一個良好的程式設計風格。
簡單的說其實要理解C檔案與標頭檔案(即.h)有什麼不同之處,首先需要弄明白編譯器的工作過程,一般說來編譯器會做以下幾個過程:
①預處理階段
②詞法與語法分析階段
③ 編譯階段,首先編譯成純彙編語句,再將之彙編成跟CPU相關的二進位制碼,生成各 個目標檔案 (.obj檔案)
④連線階段,將各個目標檔案中的各段程式碼進行絕對地址定位,生成跟特定平臺相關 的可執行檔案,當然,最後還可以用objcopy生成純二進位制碼,也就是去掉了檔案格 式信 息。(生成.exe檔案)
比方說 在aaa.h裡定義了一個函式的宣告,然後在aaa.h(標頭檔案)的同一個目錄下建立aaa.c(原始檔) ,aaa.c(原始檔)裡定義了這個函式的實現,然後是在main函式所在.c檔案裡#include這個aaa.h 然後我就可以使用這個函數了。 main在執行時就會找到這個定義了這個函式的aaa.c檔案。