將C語言編寫的源程序轉換成目標程序需要編譯軟件來完成。
編譯是從源代碼(通常為高級語言)到能直接被計算機或虛擬機執(zhí)行的目標代碼(通常為低級語言或機器語言)的翻譯過程。
把源程序轉換為目標代碼的是編譯或匯編程序,是通過編譯軟件實現(xiàn)的;編譯器和匯編程序都經常依賴于連接程序,它將分別在不同的目標文件中編譯或匯編的代碼收集到一個可直接執(zhí)行的文件中。
在這種情況下,目標代碼,即還未被連接的機器代碼,與可執(zhí)行的機器代碼之間就有了區(qū)別。連接程序還連接目標程序和用于標準庫函數的代碼,以及連接目標程序和由計算機的操作系統(tǒng)提供的資源(例如,存儲分配程序及輸入與輸出設備)。