導航:首頁 > 源碼編譯 > c語言編譯完後運行的原理

c語言編譯完後運行的原理

發布時間:2023-12-24 21:08:43

A. C語言編譯執行的全過程是怎樣的

不明白樓主什麼意思,就是先把你的代碼轉為匯編代碼,然後轉為二進制文件,讀入內存執行。

B. 計算機c語言 為什麼經過編譯就可以執行,沒有經過連接

C語言是通過編譯器與電腦進行交流。不用經過連接。

C語言是一門通用計算機編程語言,應用廣泛。C語言的設計目標是提供一種能以簡易的方式編譯、處理低級存儲器、產生少量的機器碼以及不需要任何運行環境支持便能運行的編程語言。
盡管C語言提供了許多低級處理的功能,但仍然保持著良好跨平台的特性,以一個標准規格寫出的C語言程序可在許多電腦平台上進行編譯,甚至包含一些嵌入式處理器(單片機或稱MCU)以及超級電腦等作業平台。
二十世紀八十年代,為了避免各開發廠商用的C語言語法產生差異,由美國國家標准局為C語言訂定了一套完整的國際標准語法,稱為ANSI C,作為C語言最初的標准。

C. C語言編譯原理是什麼

編譯共分為四個階段:預處理階段、編譯階段、匯編階段、鏈接階段。
1、預處理階段:
主要工作是將頭文件插入到所寫的代碼中,生成擴展名為「.i」的文件替換原來的擴展名為「.c」的文件,但是原來的文件仍然保留,只是執行過程中的實際文件發生了改變。(這里所說的替換並不是指原來的文件被刪除)
2、匯編階段:
插入匯編語言程序,將代碼翻譯成匯編語言。編譯器首先要檢查代碼的規范性、是否有語法錯誤等,以確定代碼的實際要做的工作,在檢查無誤後,編譯器把代碼翻譯成匯編語言,同時將擴展名為「.i」的文件翻譯成擴展名為「.s」的文件。
3、編譯階段:
將匯編語言翻譯成機器語言指令,並將指令打包封存成可重定位目標程序的格式,將擴展名為「.s」的文件翻譯成擴展名為「.o」的二進制文件。
4、鏈接階段:
在示例代碼中,改代碼文件調用了標准庫中printf函數。而printf函數的實際存儲位置是一個單獨編譯的目標文件(編譯的結果也是擴展名為「.o」的文件),所以此時主函數調用的時候,需要將該文件(即printf函數所在的編譯文件)與hello
world文件整合到一起,此時鏈接器就可以大顯神通了,將兩個文件合並後生成一個可執行目標文件。

D. C語言編譯執行的全過程是怎樣的

預處理階斷:這個就是那些#include啥的。
編譯階斷:把C語言的代碼轉成匯編語言代碼,比如 int a = 2; 它會生成mov a, 2;
匯編階斷:把匯編代碼轉換成機器碼,比如把mov a , 2 ; 轉成 cd07 (mov指令的機器碼中的一種機器碼)
鏈接階斷:製作成一個可執行文件,比如windows是PE的可執行文件,linux是elf的可執行文件,要製作成可以運行的程序。

E. C語言工作原理

作為一種編程語言,本身是談不上工作原理的,實際上C語言所有的語法,正是C語言編譯器的工作原理或者工作機制的具體實現。要細致的討論起來是不可能,但是作為C語言程序員,必須了解這個大致的流程。一個程序,從C語言源碼,到系統可執行的文件,一般經歷四個過程。
1、預處理階斷,這個階斷是文本處理階斷,有預處理器來完成,會將源碼中的帶"#"開頭的預處理命令進行相應的處理,在Linux上C語言的預處理器程序是cp命令。
2、編譯階斷,這個階斷是有C語言編譯階斷,在Linux上C語言的編譯器是cc命令,它將C語言源碼轉換成匯編指令。
3、匯編階斷,這個階斷是匯編編譯階斷,在Linux上C語言的匯編器是as命令,這個階斷會將匯編指令編譯成二進制機器碼。
4、鏈接階斷,這個階斷是會將匯編階斷生成的機器碼目標文件,裝載成一個系統可執行的文件,在Linux平台以ELF格式進行組裝,在Windows平台上以PE格式進行組裝。在Linux平台上的鏈接器命令為ld,在windows平台上的鏈接器命令為linker。

F. c語言為何需要編譯和連接才能運行

的文件(也稱為源代碼)而已,需要經過1定的處理才能轉換成機器上可運行的可履行文件。
我們將對C語言的這類處理進程稱為編譯與鏈接。

閱讀全文

與c語言編譯完後運行的原理相關的資料

熱點內容
51單片機與32單片機比較 瀏覽:416
SQL加密存儲解密 瀏覽:505
電氣工程師把程序加密 瀏覽:795
解壓切東西動畫版 瀏覽:963
點到橢圓的距離演算法 瀏覽:388
新的編譯系統 瀏覽:531
cad替換樣板命令 瀏覽:361
des演算法例子 瀏覽:388
怎麼隱藏系統app 瀏覽:522
怎麼在惠生活查詢定向app 瀏覽:272
windows程序設計核心編程 瀏覽:444
任我充app怎麼開發票 瀏覽:330
人工智慧與編程語言 瀏覽:406
linux網路編程伺服器 瀏覽:800
海爾32cw空調壓縮機電容多大 瀏覽:747
分區加密了該怎麼辦 瀏覽:103
索尼延時拍攝app怎麼導入 瀏覽:226
冰箱冷凍壞了壓縮機一直響 瀏覽:807
windows伺服器如何組建raid0 瀏覽:180
橡膠壓縮空氣管 瀏覽:556