相同點:標頭檔案與原始碼都是原始檔,都用純文字檔案儲存,都需要遵照C/C++語言規範來寫,都可以使用型別定義和常、變數定義,都可以包含函式的宣告和實現,都能包含宏定義,都使用相同的呼叫規範。不同點:C/C++的編譯器規定原始碼檔案必須包含函式入口,即main函式,或者winmain函式。而標頭檔案不得包含函式入口,也就是說,標頭檔案不可以單獨編譯成一個程式,僅僅包含程式片斷或者僅僅定義常、變數。關聯:標頭檔案是專為原始碼呼叫而寫的靜態包含檔案,可被原始碼檔案中的#include編譯預處理指令解釋,而將標頭檔案完整複製到原始碼的指令處,從而在編譯時相當於在原始碼中插入了函式宣告或者實現。某些標頭檔案包含了靜態庫中的函式呼叫宣告,包含了LIB檔案的呼叫資訊,編譯時靜態連結程序序;而某些標頭檔案是專為方便API呼叫而寫的,裡面包含了動態連結庫的呼叫資訊和規範,只有在執行時將DLL載入記憶體提取函式執行。也就是說,其實你將標頭檔案裡的資訊完全寫到原始碼裡,是可以實現完全相同的功能的。如果你想要學寫標頭檔案,可以參照標準C/C++庫的h檔案。
相同點:標頭檔案與原始碼都是原始檔,都用純文字檔案儲存,都需要遵照C/C++語言規範來寫,都可以使用型別定義和常、變數定義,都可以包含函式的宣告和實現,都能包含宏定義,都使用相同的呼叫規範。不同點:C/C++的編譯器規定原始碼檔案必須包含函式入口,即main函式,或者winmain函式。而標頭檔案不得包含函式入口,也就是說,標頭檔案不可以單獨編譯成一個程式,僅僅包含程式片斷或者僅僅定義常、變數。關聯:標頭檔案是專為原始碼呼叫而寫的靜態包含檔案,可被原始碼檔案中的#include編譯預處理指令解釋,而將標頭檔案完整複製到原始碼的指令處,從而在編譯時相當於在原始碼中插入了函式宣告或者實現。某些標頭檔案包含了靜態庫中的函式呼叫宣告,包含了LIB檔案的呼叫資訊,編譯時靜態連結程序序;而某些標頭檔案是專為方便API呼叫而寫的,裡面包含了動態連結庫的呼叫資訊和規範,只有在執行時將DLL載入記憶體提取函式執行。也就是說,其實你將標頭檔案裡的資訊完全寫到原始碼裡,是可以實現完全相同的功能的。如果你想要學寫標頭檔案,可以參照標準C/C++庫的h檔案。