C語言程式需要經過編譯生成可執行檔案才能執行的程式程式碼。
序開發過程:
編輯------>編譯------->連線--------->執行
.cpp .obj .exe
源程式 目標程式 可執行程式
程式編譯的過程:
翻譯程式
總體過程: 源程式------------> 目標程式
翻譯程式有:彙編程式,編譯程式,解釋程式.
彙編程式是將組合語言寫成的源程式翻譯成機器語言形式的目標程式(二進位制檔案)
編譯程式是將用高階語言寫成的源程式翻譯成機器語言形式的目標程式。
解釋程式同樣是將高階語言源程式翻譯成機器指令,與編譯程式的不同是,邊翻譯邊執行,即輸入一句,翻譯一句,執行一句,直至整個源程式翻譯並執行完畢。
值得注意的是,解釋程式不產生整個目標程式,對於源程式中要重複執行的語句(如迴圈體)需要重複的解釋解釋執行,因此腳趾編譯程式,其效率較低。
C語言編譯全過程:
編譯的概念:編譯程式讀取源程式(字元流),對之進行詞法和語法的分析,將高階語言指令轉換為功能等效的彙編程式碼,再由彙編程式轉換為機器語言,並且按照作業系統對可執行檔案格式的要求連結生成可執行程式。
編譯的完整過程:C源程式-->預編譯處理(.c)-->編譯、最佳化程式(.s、.asm)-->彙編程式(.obj、.o、.a、.ko)-->連結程式(.exe、.elf、.axf等)
C語言程式需要經過編譯生成可執行檔案才能執行的程式程式碼。
序開發過程:
編輯------>編譯------->連線--------->執行
.cpp .obj .exe
源程式 目標程式 可執行程式
程式編譯的過程:
翻譯程式
總體過程: 源程式------------> 目標程式
翻譯程式有:彙編程式,編譯程式,解釋程式.
彙編程式是將組合語言寫成的源程式翻譯成機器語言形式的目標程式(二進位制檔案)
編譯程式是將用高階語言寫成的源程式翻譯成機器語言形式的目標程式。
解釋程式同樣是將高階語言源程式翻譯成機器指令,與編譯程式的不同是,邊翻譯邊執行,即輸入一句,翻譯一句,執行一句,直至整個源程式翻譯並執行完畢。
值得注意的是,解釋程式不產生整個目標程式,對於源程式中要重複執行的語句(如迴圈體)需要重複的解釋解釋執行,因此腳趾編譯程式,其效率較低。
C語言編譯全過程:
編譯的概念:編譯程式讀取源程式(字元流),對之進行詞法和語法的分析,將高階語言指令轉換為功能等效的彙編程式碼,再由彙編程式轉換為機器語言,並且按照作業系統對可執行檔案格式的要求連結生成可執行程式。
編譯的完整過程:C源程式-->預編譯處理(.c)-->編譯、最佳化程式(.s、.asm)-->彙編程式(.obj、.o、.a、.ko)-->連結程式(.exe、.elf、.axf等)