導航:首頁 > 源碼編譯 > c從什麼開始編譯

c從什麼開始編譯

發布時間:2023-07-23 04:20:29

Ⅰ c語言程序編譯過程包括哪四個

C語言編譯過程分成四個步驟: 
1,由.c文件到.i文件,這個過程叫預處理 
2,由.i文件到.s文件,這個過程叫編譯 
3,由.s文件到.o文件,這個過程叫匯編 
4,由.o文件到可執行文件,這個過程叫鏈接
用gcc查看預處理過程(假設源文件叫hello.c) 
gcc -o hello.i hello.c -E 
然後用 vi hello.i 即可查看生成的預處理文件
按ESC 輸入:$ 跳到預處理文件 可看到hello.c源碼
宏的本質:預處理階段的單純的字元串替換
預處理階段,不考慮C語法

Ⅱ 第一個 C 語言編譯器是用什麼語言編寫的

參考 Dennis M. Ritchie 寫的 The Development of the C Language:Chistory,C 語言誕生的基本過程就是 Ken Thomson 不滿意 BCPL,於是設計了 B 語言,並且用 BCPL 為 B 語言寫了一個編譯器,然後從這個編譯器開始自舉寫新的 B 語言編譯器。貝爾實驗室的眾人在 PDP-7 上用 B 語言寫了各種各樣的東西後又不滿意 B 語言了,於是 1971 年 DMR 開始在新買的 PDP-11 上用 B 給 B 寫擴展,稱之為 NB (new B,此處省略吐槽若干),擴展著擴展著離 B 的畫風越來越遠了,就取了一個新名字變成了一門新語言—— C 語言。 1973 年夏天他們用手頭的編譯器和語言給 PDP-11 重寫了一個 Unix Kernel。C 語言大約就是這個時期成型的。

所以,可以說第一個 C 語言的編譯器是用 B 語言,或者說是擴展過的 B 語言(NB)寫的。因為是一邊改進語言一邊用改進了的編譯器這樣滾雪球寫出來的,也可以看成是 C 語言寫的?畢竟 很難確定什麼時候 C 自己變成了一門新語言……

Ⅲ c語言時是從上往下走直到遇到maid才開始編譯嗎這樣系統從上往下走把聲明的先記住再開始編譯嗎

糾正一下,是main函數。編譯時,前面除了頭文件和一些全局變數等等,都是直接略過,到main函數在開始。

Ⅳ c語言的編譯過程是什麼

c語言的編譯過程如下:
1、預處理:預處理過程實際上是處理「#」的過程:#include包含的頭文件直接拷貝到hello.c中;#define定義的宏定義進行替換,同時刪除代碼中沒有的注釋部分。2、編譯:編譯的過程實質上是將高級語言翻譯成機器語言的過程。3、匯編:匯編器是將匯編代碼轉變成機器可以執行的命令,每一個匯編語句幾乎都對應一條機器指令。匯編相對於編譯過程比較簡單,根據匯編指令和機器指令的對照表一一翻譯即可。4、鏈接:就像hello.c中使用到了C標准庫的東西「printf」,但是編譯過程只是將源文件翻譯成二進制文件而已,這個二進制文件還不能直接執行,還需要一個動作:將翻譯成的二進制文件與需要用到的庫綁定在一塊。
補充:編譯過程可分為6步:掃描(詞法分析)、語法分析、語義分析、源代碼優化、代碼生成、目標代碼優化。

Ⅳ 第一個 C 語言編譯器是用什麼語言編寫的

第一個C語言編譯器(簡單的編譯器)是用匯編完成的,後來的完整C語言編譯器是用C語言編寫的(也就是由簡單的編譯器編譯)。

Ⅵ 一個C程序 從 哪裡開始編譯

點擊compile開始編譯~
編譯順序是 頭文件,主函數~

Ⅶ 如何編譯C語言源代碼

下載一個VC2005軟體,把代碼復制到裡面,設置好C運行環境,點擊編譯,OK,然後點擊那個感嘆號,直接鏈接運行,就OK了。

Ⅷ 開發一個c語言程序要經過哪四個步驟

開發一個C語言程序需要經過的四個步驟:編輯、編譯、連接、運行。

C語言程序可以使用在任意架構的處理器上,只要那種架構的處理器具有對應的培羨纖C語言編譯器和庫,然後將C源代碼編配仿譯、連接成目標二進制文件之後即可運行。

1、預處理:輸入源程序並保存(.C文件)。

2、編譯:將源程序翻譯為目標文件(.OBJ文件)。

3、鏈接:將目標文件生成可執行文件(.EXE文件)。

4、運行:執行.EXE文件,得到運行結果。

(8)c從什麼開始編譯擴展閱讀:

C語言代碼變為程序的幾個階段:

1、首先是源代碼文件test.c和相關的頭文件,如stdio.h等被預處理器cpp預處理成一個.i文件。經過預編譯後的.i文件不包含任何宏定義,因為所有的宏已經被展開,並且包含的文件也已經被插入到.i文件中。

2、編譯過程就是把預處理完的文件進行一系列的詞法分析、語法分析、語義分析以及優化後產生相應的匯編代碼文件,這個過程往往是我們所說的整個程序的構建的核心部分,也是最復雜的部分之一。派胡

3、匯編器不直接輸出可執行文件而是輸出一個目標文件,匯編器可以調用ld產生一個能夠運行的可執行程序。即需要將一大堆文件鏈接起來才可以得到「a.out」,即最終的可執行文件。

4、在鏈接過程中,對其他定義在目標文件中的函數調用的指令需要被重新調整,對實用其他定義在其他目標文件的變數來說,也存在同樣問題。

參考資料來源:網路-c語言

閱讀全文

與c從什麼開始編譯相關的資料

熱點內容
dvd光碟存儲漢子演算法 瀏覽:757
蘋果郵件無法連接伺服器地址 瀏覽:962
phpffmpeg轉碼 瀏覽:671
長沙好玩的解壓項目 瀏覽:142
專屬學情分析報告是什麼app 瀏覽:564
php工程部署 瀏覽:833
android全屏透明 瀏覽:732
阿里雲伺服器已開通怎麼辦 瀏覽:803
光遇為什麼登錄時伺服器已滿 瀏覽:301
PDF分析 瀏覽:484
h3c光纖全工半全工設置命令 瀏覽:141
公司法pdf下載 瀏覽:381
linuxmarkdown 瀏覽:350
華為手機怎麼多選文件夾 瀏覽:683
如何取消命令方塊指令 瀏覽:349
風翼app為什麼進不去了 瀏覽:778
im4java壓縮圖片 瀏覽:362
數據查詢網站源碼 瀏覽:150
伊克塞爾文檔怎麼進行加密 瀏覽:890
app轉賬是什麼 瀏覽:163