版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、3.1 C語言編譯器、c語言編譯器c語言編譯過程Makefile、3.1.1 C語言編譯器和c語言誕生于70年代初。 一九七八年美國電話電報公司(ATT )貝爾實驗室正式發(fā)表c語言。 早期的c語言主要是UNIX系統(tǒng)上目前最流行的c語言編譯器有GNU編譯器收集、GCC Microsoft C或MS C Borland Turbo C或Turbo C、3.1.2 C語言編譯過程。 編譯器:編譯器對源程序進行字句和語法分析,將高級語言指令轉換為功能等效的程序集代碼,從程序集轉換為機器語言,并根據操作系統(tǒng)可執(zhí)行文件格式的請求鏈接生成可執(zhí)行文件。 c源程序頭文件預編譯處理(cpp )編譯器自身優(yōu)化程序匯
2、編鏈接程序-可執(zhí)行文件預處理編譯階段優(yōu)化階段匯編進程鏈接程序、3.1.2.1編譯預處理、預處理: 偽指令主要是通過這種替代方式(其中在諸如#ifdef、#ifndef、#else、#elif、#endif之類的宏定義指令、#define Name #undef條件編譯指令、#include之類的報頭文件中包括指令)來產生沒有宏定義的、有條件的編譯指令此文件的含義與未預處理的源文件相同,但內容不同。3.1.2.2編譯階段,預編譯器創(chuàng)建的工作:詞法分析將翻譯成等效的中間代碼表示或程序集代碼。 3.1.2.3優(yōu)化階段,優(yōu)化處理是編譯系統(tǒng)中比較困難的技術。 不僅編譯技術本身,而且與機器的硬件環(huán)境也有很
3、大關系的中間代碼的優(yōu)化,不依賴于具體的糾正算法器的主要工作是共同表示的刪除、環(huán)優(yōu)化(去代碼、強度衰減、變換環(huán)控制條件、已知量的整合等)、轉印傳播、不必要的代入的刪除目標代碼的生成優(yōu)化是具體的計算機利用存儲在機器的各硬件寄存器中的相關變量的值,減少訪問存儲器的次數縮短目標代碼, 必須將高效執(zhí)行的優(yōu)化程序集代碼在程序集中轉換為相應的機械指令的目標文件由段組成的代碼段此段主要包含程序指令。 此段通常是可讀的,可以執(zhí)行,但通常不可寫的。 數據段主要存儲程序使用的各種全局變量或靜態(tài)數據。 一般數據段是可讀、可寫和可執(zhí)行的。 3.1.2.4匯編階段,UNIX環(huán)境主要有三種目標文件。 可重定位文件包含適合鏈
4、接到其他目標文件以創(chuàng)建可執(zhí)行或共享的目標文件的代碼和數據。 共享的目標文件包含適合在兩個上下文中鏈接的代碼和數據。 第一個事件鏈接程序與可重定位文件和共享的目標文件一起處理,以創(chuàng)建另一個目標文件;第二個是動態(tài)鏈接程序將另一個可執(zhí)行文件與共享的目標文件合并以創(chuàng)建進程映像可執(zhí)行文件包含操作系統(tǒng)可以創(chuàng)建和執(zhí)行進程的文件。 匯編程序生成的實際上是第一類目標文件。 后者還需要其他一些處理,這就是鏈接程序的工作。 在3.1.2.5鏈接階段,鏈接程序將相關目標文件相互連接,以確保所有這些目標文件通過操作系統(tǒng)加載執(zhí)行而成為統(tǒng)一的整體。目標文件或片段鏈接處理包括靜態(tài)鏈接動態(tài)鏈接、3.1.3 Makefile、m
5、akefile或用于自動編譯和鏈接的makefile可以記錄文件的信息、鏈接時需要重新編譯哪些文件3.2內置c程序的編譯過程編譯鏈接地址,3將源代碼轉換為可執(zhí)行的二進制圖像的過程源文件被編譯或裝配,并且目標文件(object file )可重定位程序(relocation programs ) 重新定位進程、3.2.2編譯器、編譯器、3.2.3鏈路、創(chuàng)建進程編譯鏈路地址、3.2.4地址、創(chuàng)建進程編譯鏈路地址、 3.3程序執(zhí)行A.out及其傳說段操作系統(tǒng)在A.out中做了什么c語言運行在A.out中做了什么函數調用時發(fā)生了什么Auto和static關鍵字Unix/Linux的堆棧段MS-DOS的
6、堆棧段,3.3.1 A.out -“assembler output”的縮寫a.out文件格式分析a.out文件包含七個部分:也可以理解為exec header文件頭) text segment 數據段文本重新定位段數據位置段符號表字符串表字符串表字符串表字符串表字符串表字符串表字符串在以前的UNIX系統(tǒng)中使用的可執(zhí)行文件格式,由ATT進行了修訂,基本上被ELF文件格式所取代。 段:是二進制文件的簡單區(qū)域,具體類型(例如符號表條目) 的所有相關信息段都可以容易地映射到鏈接器在運行時可以直接加載的對象段在運行程序的內存區(qū)域中,這些段是運行程序中的一個內存區(qū)域。 每個區(qū)域具有特定的目標段特征的文本
7、段包含順序的指令數據段用于存儲初始化的全局變量和靜態(tài)變量以及它們的值棧段,其中該值棧段用于存儲傳遞給局部變量、臨時數據、函數的殘奧參數; 3.3.4 C語言在a.out中做了什么運行時數據結構種類堆?;顒佑涗洈祿褩?,3.3.4 C語言在a.out中做了什么堆棧堆棧包含單個數據結構堆棧的動態(tài)存儲區(qū)域當堆棧在提示堆棧中的當前頂層位置處的角色堆棧為函數內部聲明中的局部變量提供存儲空間以調用函數時,還可使用與堆棧存儲相關聯(lián)的一些維護信息堆棧作為臨時存儲區(qū)域。 3.3.4 C語言在a.out中做了什么,段的地址聲明如何找到這些段的變量并打印它們的地址printf (“堆棧頂點is near % pn”
8、,I ); 返回0; 3.3.5函數調用時發(fā)生了什么,跟蹤調用鏈c語言自動提供的服務等函數在調用結束了哪個函數實現機制:棧中的進程活動記錄進程活動記錄之后移動到調用點3.3.6 Auto和static關鍵字A.out及其傳說段操作系統(tǒng)在A.out中做了什么c語言在A.out中做了什么函數調用時發(fā)生了什么Auto和static關鍵字Unix/Linux的堆棧段MS-DOS的堆棧堆積在Linux BSS區(qū)域上,隨著程序繼續(xù)要求內存而堆積,ps命令顯示的過程消耗內存的大小也發(fā)生變化。堆棧(stack ) :是維持函數調用的系統(tǒng)堆棧,函數的殘奧參數和局部變量(靜態(tài)變量除外)存儲在此。 堆棧位于進程內存區(qū)域的頂層段,隨著函數的調用向下增加。 當函數回調時,堆棧向上回收,其中的關殘奧參數和變量數據無效。 3.3.8 MS-DOS的堆棧段。 DOS需要在創(chuàng)建可執(zhí)行文件時同時確定堆棧的大小,并且不能在運行時擴展。 確定堆棧大小的方法取決于所使用的編譯器。 在Microsoft編譯器中,程序員可以確定堆棧的大小作為鏈接器殘奧儀表。 堆棧nnn此殘奧定計量器指示Microsoft鏈接器將nn
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 內科學總論結腸息肉惡變防治課件
- 安徽交控集團所屬安徽交控資源有限公司2026年校園招聘備考題庫及一套完整答案詳解
- 2026年中國華電集團產融控股有限公司本部一般管理人員公開招聘備考題庫及一套完整答案詳解
- 2026年重慶市合川區(qū)肖家鎮(zhèn)衛(wèi)生院招聘非在編醫(yī)學檢驗、臨床護理人員備考題庫及參考答案詳解一套
- 2026年浙江中醫(yī)藥大學臨床醫(yī)學院及直屬附屬醫(yī)院公開招聘277人備考題庫有完整答案詳解
- 2026年武漢市第三十二中學招聘初中教師備考題庫附答案詳解
- 佛山市三水區(qū)云東海街道公辦幼兒園2026年春季學期公開招聘合同制工作人員的備考題庫及一套完整答案詳解
- 2026年中國人民大學高瓴人工智能學院招聘備考題庫及完整答案詳解
- 2026年福田區(qū)第三幼兒園(石廈)招聘備考題庫及答案詳解參考
- 2026年四川工商學院招聘專任教師崗位5人備考題庫附答案詳解
- 《房地產信托》課件 - 深入了解房產投資的新渠道
- 保險業(yè)案防培訓課件
- 個體戶公司章程范本
- 2024年第一次廣東省普通高中數學學業(yè)水平合格性考試真題卷含答案
- 交通運輸工程質量檢測項目清單預算編制規(guī)范
- 人教版小學六年級語文下冊全部詞語表
- 物業(yè)工程維修員安全培訓
- 2024年全國甲卷《霜降夜》解讀
- 2024秋期國家開放大學《國際法》一平臺在線形考(形考任務1至5)試題及答案
- 外國文學1智慧樹知到期末考試答案章節(jié)答案2024年紹興文理學院
- 安全防護用具檢查記錄表
評論
0/150
提交評論