官术网_书友最值得收藏!

1.6.2 編譯

編譯是指用C語言提供的編譯器將編輯好的源程序翻譯成二進制形式的目標代碼文件的過程。目標代碼文件的擴展名為“.obj”,又稱OBJ文件。

1.編譯過程

C的編譯過程分為2個子過程:

① 預處理過程。執(zhí)行程序中的預處理命令。

② 編譯過程。進行詞法分析和語法分析。

在編譯過程中,編譯器將檢查源程序每一條語句的詞法和語法錯誤。

2.編譯中的錯誤

編譯錯分為兩種性質的錯誤:Error(致命)錯誤和Warning(警告)錯誤。

致命錯誤將終止程序繼續(xù)編譯,不會生成OBJ文件,必須修改程序重新編譯。

警告錯是編譯程序不能百分之百地確定的錯誤,即源程序在這里可能有錯。如果程序中只有Warning錯,則可以連接生成可執(zhí)行程序。警告錯有兩種,一種不會影響程序運行結果,另一種則會影響程序運行結果,這時需要分析具體情況,找到并修改錯誤。

3.編譯方法

執(zhí)行“Compile”菜單中的“Compile to OBJ”命令。如果編譯成功,就可得到一個擴展名為“.obj”的目標代碼程序。如果在編譯過程中發(fā)現(xiàn)了錯誤,在屏幕下方的信息窗口中就會顯示出錯誤的類型,錯誤發(fā)生的位置和錯誤的原因,即:

<錯誤性質> <錯誤發(fā)生的位置>:<錯誤內容>

在圖1.11的信息窗口中指出:程序1-1.C的錯誤性質是Error,該程序錯誤發(fā)生的位置在第4行;錯誤的內容是main()函數(shù)中的符號k未定義。

圖1.11 信息窗口中顯示的出錯信息

在編譯過程中可以用<F6>鍵在程序編輯窗口和信息窗口中進行切換,以便修改程序或者查看錯誤提示信息。

值得注意的是,編譯時,當信息窗口中列出了很多行的錯誤信息時,并不表示需要依次對這些行進行修改,有可能是一個錯誤所致。例如,程序中有一個變量沒有定義,那么,所有使用該變量的行在編譯時都會報錯。當加上對該變量的定義時,所有由該變量引起的錯誤都將消失。所以在修改編譯錯誤時,對不明顯的錯誤,最好是修改一個錯誤就重新編譯一次。

《C/C++程序設計實驗指導與測試》(第3版)的附錄C中列出了常見的編譯錯誤。

主站蜘蛛池模板: 襄汾县| 大同县| 崇左市| 武功县| 积石山| 南宫市| 太仓市| 木兰县| 集安市| 特克斯县| 博客| 宾川县| 永新县| 多伦县| 红河县| 梁山县| 敦化市| 比如县| 临清市| 景宁| 全州县| 台安县| 栾城县| 太康县| 锡林浩特市| 克什克腾旗| 忻州市| 定远县| 潼南县| 同心县| 安阳县| 巫溪县| 南丹县| 图片| 宁晋县| 涿鹿县| 禹城市| 禹州市| 古丈县| 甘德县| 商都县|