国产成人毛片视频|星空传媒久草视频|欧美激情草久视频|久久久久女女|久操超碰在线播放|亚洲强奸一区二区|五月天丁香社区在线|色婷婷成人丁香网|午夜欧美6666|纯肉无码91视频

一個c程序是如何工作的(C語言程序怎么運行?)

c程序的工作過程?1 .使用編輯器創(chuàng)建并保存一個名為hello.c的文本文件可以說hello程序的生命周期就是從這個時候開始的,這也是因為這種形式更容易讓人理解。但是,為了在計算機上運行這個程序,每一

一個c程序是如何工作的(C語言程序怎么運行?)

c程序的工作過程?

1 .使用編輯器創(chuàng)建并保存一個名為hello.c的文本文件可以說hello程序的生命周期就是從這個時候開始的,這也是因為這種形式更容易讓人理解。但是,為了在計算機上運行這個程序,每一條C語句都必須被其他程序轉換成一系列低級的機器語言指令,然后計算機根據可執(zhí)行的目標程序將這些指令打包,以二進制磁盤文件的形式存儲。

2.預處理階段:cpp根據#開頭的命令修改原C程序,比如將# inclultstdio.hgt中的stdio.件寫入hello.c中得到另一個程序保存在hello.i中。

3.編譯階段:ccl將文本文件hello.i編譯成hello.s,其中包含匯編語言程序。

4.匯編階段:As將hello.s翻譯成機器語言指令,將這些文件打包成一種叫做可重定位對象程序的格式,并將結果保存在hello.o中,這時如果我們用文本編輯器打開,就會看到一堆。

5.鏈接階段:因為hello程序使用了pringtf函數。每個C編譯器都會提供標準庫中的函數。printf存在于printf.o中,這個文件必須合并到hC語言程序怎么運行?

運行C語言程序的編輯(輸入程序代碼,交給電腦)。編譯(目標程序文件。obj)。就是把一種高級語言變成計算機能識別的二進制語言。計算機只知道1和0,編譯器把熟悉的語言變成二進制。

編譯器將源程序翻譯成目標程序的工作過程分為五個階段:詞法分析;語法分析;語義檢查和中間代碼生成;代碼優(yōu)化;目標代碼生成

一個C程序到完成運行要經過哪幾個步驟?

Ld是鏈接器,鏈接成功返回0。一個C程序從代碼到二進制文件的運行要經過預處理、編譯、匯編、鏈接、加載和執(zhí)行。

預處理后,C文件會完成宏替換等動作,編譯會生成一個匯編文件(可以在gcc下添加參數-s生成),后綴為s。

在匯編步驟中,匯編程序將把匯編文件轉換成*。o(低于*。o(linux)或*。obj(msvc)文件,這是目標文件。

鏈接器負責鏈接多個目標文件和庫文件,得到二進制可執(zhí)行文件,程序會被加載到內存中,在后續(xù)的加載階段執(zhí)行。

許多目標文件會引用其他目標文件中的變量或函數,這些變量或函數在*中稱為符號。o.

有一個符號表。鏈接器的每個目標文件中的symtab。;參考文獻。如果鏈接器在目標文件中找到需要引用到其他位置的符號(這里它被分成PC階段)對于參考和絕對位置參考),它將找到被引用的符號,如果找到,則重新定位它。一般來說,我們使用的ide會將上述過程集成到一個簡單的步驟中,我們經常可以 看不到其中生成的程序集文件和目標文件。如果我們不這樣做。;如果不理解這些過程,我們可能會對ide 的錯誤報告。