程式檔名的字尾是.c,經過編譯後是.obj,經過連線後是.exe。
xx.h檔案.h中一般放的是同名.c檔案中定義的變數、陣列、函式的宣告,需要讓.c外部使用的宣告。
xx.c檔案.c檔案一般放的是變數、陣列、函式的具體定義。
1、標頭檔案的預編譯,預處理。
編譯器在編譯原始碼時,會先編譯標頭檔案,保證每個標頭檔案只被編譯一次。
在預處理階段,編譯器將c檔案中引用的標頭檔案中的內容全部寫到c檔案中。
2、詞法和語法分析(查錯)。
3、編譯(彙編程式碼,.obj檔案)。
轉化為彙編碼,這種檔案稱為目標檔案。字尾為.obj。
4、連結(二進位制機器碼,.exe檔案)。
將彙編程式碼轉換為機器碼,生成可執行檔案。
https://iknow-pic.cdn.bcebos.com/78310a55b319ebc4a06c95ff8d26cffc1e1716bb
擴充套件資料
注意事項
在編譯過程中.h檔案中的所有內容會被寫到包含它的.c檔案中,而所有的.c檔案以一個共同的main函式作為可執行程式的入口。
在.h檔案中編寫函式實現依然可以正常編譯執行,相當於所有.h的內容最後都被寫到了main.c檔案中。
但是為了邏輯性、易於維護性以及一些其他目的,一般在.h檔案中寫函式的宣告,在.c檔案中編寫函式的實現。
程式檔名的字尾是.c,經過編譯後是.obj,經過連線後是.exe。
xx.h檔案.h中一般放的是同名.c檔案中定義的變數、陣列、函式的宣告,需要讓.c外部使用的宣告。
xx.c檔案.c檔案一般放的是變數、陣列、函式的具體定義。
1、標頭檔案的預編譯,預處理。
編譯器在編譯原始碼時,會先編譯標頭檔案,保證每個標頭檔案只被編譯一次。
在預處理階段,編譯器將c檔案中引用的標頭檔案中的內容全部寫到c檔案中。
2、詞法和語法分析(查錯)。
3、編譯(彙編程式碼,.obj檔案)。
轉化為彙編碼,這種檔案稱為目標檔案。字尾為.obj。
4、連結(二進位制機器碼,.exe檔案)。
將彙編程式碼轉換為機器碼,生成可執行檔案。
https://iknow-pic.cdn.bcebos.com/78310a55b319ebc4a06c95ff8d26cffc1e1716bb
擴充套件資料
注意事項
在編譯過程中.h檔案中的所有內容會被寫到包含它的.c檔案中,而所有的.c檔案以一個共同的main函式作為可執行程式的入口。
在.h檔案中編寫函式實現依然可以正常編譯執行,相當於所有.h的內容最後都被寫到了main.c檔案中。
但是為了邏輯性、易於維護性以及一些其他目的,一般在.h檔案中寫函式的宣告,在.c檔案中編寫函式的實現。