一個C程式的產生要經曆以下步驟:
1.編寫文本代碼,產生C或cpp檔案,這時候它還是文本的;
2.編譯,就是compile,由C編譯器對你寫的代碼進行詞法和句法分析,發現並報告錯誤,有錯時編譯不能通過。如若無錯,則產生中間代碼,副檔名為obj,此時它便是二進位的了;
3.串連,在彙編裡稱link,在C裡叫產生,即build,它的作用是產生可執行檔exe檔案。由於一個程式的源碼可由多個檔案組成。這些檔案在第二步中分別編譯,產生各自的目標檔案(*.obj),這一步的作用便是將這些obj檔案,以及程式中需要的其它庫檔案(dll除開),統一到一個檔案中來,形成單個的exe檔案。此exe檔案便可以在作業系統下直接運行了。
上述第二步做完中間代碼產生的工作後還有個代碼最佳化,這裡就不詳講了。
compile、build分別對應編譯和串連這兩個過程。execute的意思是執行,即產生了exe檔案後運行它。如果你的程式有修改,點這一項它會快顯視窗問你是否重新編譯和串連,也就是它可以自動把前面的工作都做了。也就是說,VC菜單裡的execute功能如下:
1.程式有修改時,或者沒有做前面的編譯串連工作時
execute=compile+build+執行;
2.程式編譯串連好後
execute僅僅是執行,不再做前面兩項工作。
當程式有修改時,選擇execute只重編譯和串連有改動的內容,但這樣做有時候會出錯,這時可選擇build菜單下的rebuild all,重新編譯、串連所有檔案。
總之,C程式的產生可圖示如下:
編寫原始碼-> 編譯(compile)-> 串連,也叫產生(build)-> 運行(execute)
對應的各個階段處理的檔案的副檔名為:
c或cpp-> obj-> exe。
C程式是編譯執行的,還有一種程式是解釋執行的,如java,它的源檔案經過編譯後形成副檔名為class的中間代碼,之後不做串連產生exe檔案,而是直接將這種.class的中間代碼拿到java虛擬機器平台上,由解譯器解釋執行。這種方式效率較低,但較靈活。
還有,那個go是在調試器中調試用的,它的大體作用跟execute差不多,也能自動做編譯、串連、執行三項工作,但它會在程式中產生斷點,由程式員調試和檢查程式,在彙編中這叫一個單步中斷。其實它就是調試器中用的execute。