資料介紹
在進行 C 程序開發(fā)時,編譯就是將編寫的 C 語言代碼變成可執(zhí)行程序的過程,這一過程
是由編譯器來完成的。編譯器就是完成程序編譯工作的軟件,在進行程序編譯時完成了一系
列復(fù)雜的過程。
1.1.1 程序編譯的過程
在執(zhí)行這一操作時,程序完成了復(fù)雜的過程。一個程序的編譯,需要完成詞法分析、語
法分析、中間代碼生成、代碼優(yōu)化、目標(biāo)代碼生成。本章將講解這些步驟的作用與原理。
(1)詞法分析。指的是對由字符組成的單詞進行處理,從左至右逐個字符地對源程序進
行掃描,產(chǎn)生一個個的單詞符號。然后把字符串的源程序改造成為單詞符號串的中間程序。
在編譯程序時,這一過程是自動完成的。編譯程序會對代碼的每一個單詞進行檢查。如果單
詞發(fā)生錯誤,編譯過程就會停止并顯示錯誤。這時需要對程序中的錯誤進行修改
(2)語法分析。語法分析器以單詞符號作為輸入,分析單詞符號串是否形成符合語法規(guī)
則的語句。例如,需要檢查表達式、賦值、循環(huán)等結(jié)構(gòu)是否完整和符合使用規(guī)則。在語法分
析時,會分析出程序中錯誤的語句,并顯示出結(jié)果。如果語法發(fā)生錯誤,編譯任務(wù)是不能完
成的。
(3)中間代碼生成。中間代碼是源程序的一種內(nèi)部表示,或稱中間語言。程序進行詞法
分析和語法分析以后,將程序轉(zhuǎn)換成中間代碼。這一轉(zhuǎn)換的作用是使程序的結(jié)構(gòu)更加簡單和
規(guī)范。中間代碼生成操作是一個中間過程,與用戶是無關(guān)的。
(4)代碼優(yōu)化。代碼優(yōu)化是指對程序進行多種等價變換,使得從變換后的程序能生成更
有效的目標(biāo)代碼。用戶可以在編譯程序時設(shè)置代碼優(yōu)化的參數(shù),可以針對不同的環(huán)境和設(shè)置
進行優(yōu)化。
(5)目標(biāo)代碼生成。目標(biāo)代碼生成指的是產(chǎn)生可以執(zhí)行的應(yīng)用程序,這是編譯的最后一
個步驟。生成的程序是二進制的機器語言,用戶只能運行這個程序,而不能打開這個文件查
看程序的
- linux 下嵌入式開發(fā)
- 嵌入式學(xué)習(xí)培訓(xùn)能學(xué)會嗎?嵌入式開發(fā)培訓(xùn)都要學(xué)什么?
- 嵌入式開發(fā)培訓(xùn)學(xué)什么?嵌入式開發(fā)板知識講解
- 視頻教程-嵌入式Linux文件與串口編程-嵌入式
- 嵌入式開發(fā)Linux入門
- 視頻教程-嵌入式Linux開發(fā)基礎(chǔ)-嵌入式
- 嵌入式LINUX開發(fā)三步走
- 視頻教程-嵌入式Linux多任務(wù)編程-嵌入式
- 嵌入式linux串口編程
- 嵌入式linux編程開發(fā)必備知識
- 嵌入式linux報警,嵌入式Linux下LED報警燈驅(qū)動設(shè)計及編程.doc
- 嵌入式開發(fā)(一):嵌入式開發(fā)新手入門
- ARM11嵌入式系統(tǒng)Linux下LCD的驅(qū)動的設(shè)計
- 嵌入式開發(fā)要學(xué)什么嵌入式開發(fā)的一些入門教材推薦 27次下載
- 嵌入式開發(fā)Linux網(wǎng)絡(luò)編程培訓(xùn)資料的詳細資料免費下載 34次下載
- 嵌入式開發(fā)必備-RK3562演示Linux常用系統(tǒng)查詢命令(上)觸覺智能出品 117次閱讀
- fpga是嵌入式開發(fā)嗎 1102次閱讀
- 嵌入式開發(fā)的產(chǎn)品有哪些_嵌入式開發(fā)的流程 1.1w次閱讀
- 詳細盤點工程師嵌入式開發(fā)必備工具讓工作事半功倍 5737次閱讀
- 基于Mac上做嵌入式開發(fā)簡析 4002次閱讀
- 嵌入式開發(fā)好學(xué)嗎_嵌入式開發(fā)職業(yè)發(fā)展方向是什么 9207次閱讀
- 什么是嵌入式開發(fā)板_學(xué)嵌入式用什么開發(fā)板 7206次閱讀
- 嵌入式開發(fā)和單片機開發(fā)有什么區(qū)別和聯(lián)系 3.6w次閱讀
- 嵌入式C實現(xiàn)延時程序的不同變量的區(qū)別 幾種Linux嵌入式開發(fā)環(huán)境的簡單介紹 1673次閱讀
- 嵌入式開發(fā)工具有哪些_五款嵌入式開發(fā)工具推薦 4w次閱讀
- 學(xué)嵌入式開發(fā)入門_學(xué)嵌入式開發(fā)需要看哪些書籍 2.5w次閱讀
- 想學(xué)嵌入式開發(fā)必須要學(xué)哪些知識點 3w次閱讀
- 一文看懂嵌入式開發(fā)與c++開發(fā)有什么不同 2.4w次閱讀
- 嵌入式開發(fā)環(huán)境的搭建 8548次閱讀
- 嵌入式開發(fā)就業(yè)前景分析_嵌入式領(lǐng)域的職業(yè)發(fā)展方向 1.8w次閱讀
下載排行
本周
- 1涂鴉各WiFi模塊原理圖加PCB封裝
- 11.75 MB | 76次下載 | 1 積分
- 2錦銳科技CA51F2 SDK開發(fā)包
- 24.06 MB | 29次下載 | 1 積分
- 3錦銳CA51F005 SDK開發(fā)包
- 19.47 MB | 3次下載 | 1 積分
- 4蘋果iphone 11電路原理圖
- 4.98 MB | 3次下載 | 2 積分
- 5基礎(chǔ)模擬電子電路
- 3.80 MB | 3次下載 | 1 積分
- 6RA-Eco-RA6M4-100PIN-V1.0開發(fā)板資料
- 34.89 MB | 1次下載 | 免費
- 7STM32F3系列、STM32F4系列、STM32L4系列和STM32L4+系列Cortex-M4編程手冊
- 3.32 MB | 1次下載 | 免費
- 8聯(lián)想A820t手機維修圖紙包括主板原理圖 尾板原理圖 點位圖
- 0.62 MB | 次下載 | 5 積分
本月
- 1AI智能眼鏡產(chǎn)業(yè)鏈分析
- 4.43 MB | 383次下載 | 免費
- 2蘇泊爾電磁爐線路的電路原理圖資料合集
- 2.02 MB | 296次下載 | 5 積分
- 3貼片三極管上的印字與真實名稱的對照表詳細說明
- 0.50 MB | 94次下載 | 1 積分
- 4長虹液晶電視R-HS310B-5HF01的電源板電路原理圖
- 0.46 MB | 91次下載 | 5 積分
- 5涂鴉各WiFi模塊原理圖加PCB封裝
- 11.75 MB | 76次下載 | 1 積分
- 6錦銳科技CA51F2 SDK開發(fā)包
- 24.06 MB | 29次下載 | 1 積分
- 7AO4803A雙P通道增強型場效應(yīng)晶體管的數(shù)據(jù)手冊
- 0.11 MB | 28次下載 | 2 積分
- 8長虹液晶彩電LS29機芯的技術(shù)資料說明
- 3.42 MB | 16次下載 | 2 積分
總榜
- 1matlab軟件下載入口
- 未知 | 935127次下載 | 10 積分
- 2開源硬件-PMP21529.1-4 開關(guān)降壓/升壓雙向直流/直流轉(zhuǎn)換器 PCB layout 設(shè)計
- 1.48MB | 420064次下載 | 10 積分
- 3Altium DXP2002下載入口
- 未知 | 233089次下載 | 10 積分
- 4電路仿真軟件multisim 10.0免費下載
- 340992 | 191388次下載 | 10 積分
- 5十天學(xué)會AVR單片機與C語言視頻教程 下載
- 158M | 183342次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81588次下載 | 10 積分
- 7Keil工具MDK-Arm免費下載
- 0.02 MB | 73815次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65988次下載 | 10 積分
評論