導航:首頁 > 源碼編譯 > c編譯器運行期

c編譯器運行期

發布時間:2022-05-15 11:42:23

A. 如果操作系統是C語言開發的,那麼C編譯器運行在什麼上呢

C編譯器可以理解為開發工具,按照你說的,操作系統是C語言開發的,那用什麼開發它呢,用的就是C編譯器吧(不止編譯器,編譯器只是很少的一部分,這里用它代替開發環境),C編譯器要裝在電腦的操作系統上吧,然後你在裝有編譯器的操作系統下完成了另一個操作系統的開發,然後將你完成的這個操作系統安裝在另一台機器上,然後你的C開發的操作系統就運行了。所以說,C編譯器是運行在需要開發C程序的操作系統下的,這里你可以把你用C語言開發的操作系統認為是一個C程序。你在開發C程序而已,那這樣你就該知道你的C編譯器運行在什麼上面了吧。

B. c編譯程序是什麼

c編譯程序是將c語言程序編譯成目標代碼程序的程序,即正確答案應該選擇D。

1、c語言是目前世界上最流行、使用最廣泛的面向過程的高級程序設計語言。 c語言對操作系統和系統使用程序以及需要對硬體進行操作的場合,用c語言明顯優於其它高級語言,許多大型應用軟體都是用c語言編寫的。

2、編譯就是利用編譯程序從源語言編寫的源程序產生目標程序的過程,其中的五個階段分別是詞法分析、語法分析、語義檢查和中間代碼生成、代碼優化、目標代碼生成。主要是進行詞法分析和語法分析,又稱為源程序分析,分析過程中發現有語法錯誤,給出提示信息。

(2)c編譯器運行期擴展閱讀

c編譯程序的語言特點

對於c編譯程序來說,其語言的特點如下:

1、c語言是一種結構化語言。它層次清晰,便於按模塊化方式組織程序,易於調試和維護,而且表現能力和處理能力極強。

2、c語言具有豐富的運算符和數據類型,便於實現各類復雜的數據結構。它還可以直接訪問內存的物理地址,進行位(bit)一級的操作。

3、由於c語言實現了對硬體的編程操作,因此集高級語言和低級語言的功能於一體。它既可用於系統軟體的開發,也適合於應用軟體的開發。

4、此外,c語言還具有效率高、可移植性強等特點。因此它廣泛地移植到了各類各型計算機上,從而形成了多種版本。

C. c語言編譯器如何運行

編譯共分為四個階段:預處理階段、編譯階段、匯編階段、鏈接階段。

1、預處理階段:

主要工作是將頭文件插入到所寫的代碼中,生成擴展名為「.i」的文件替換原來的擴展名為「.c」的文件,但是原來的文件仍然保留,只是執行過程中的實際文件發生了改變。(這里所說的替換並不是指原來的文件被刪除)

2、匯編階段:

插入匯編語言程序,將代碼翻譯成匯編語言。編譯器首先要檢查代碼的規范性、是否有語法錯誤等,以確定代碼的實際要做的工作,在檢查無誤後,編譯器把代碼翻譯成匯編語言,同時將擴展名為「.i」的文件翻譯成擴展名為「.s」的文件。

3、編譯階段:

將匯編語言翻譯成機器語言指令,並將指令打包封存成可重定位目標程序的格式,將擴展名為「.s」的文件翻譯成擴展名為「.o」的二進制文件。

4、鏈接階段:

在示例代碼中,改代碼文件調用了標准庫中printf函數。而printf函數的實際存儲位置是一個單獨編譯的目標文件(編譯的結果也是擴展名為「.o」的文件),所以此時主函數調用的時候,需要將該文件(即printf函數所在的編譯文件)與hello world文件整合到一起,此時鏈接器就可以大顯神通了,將兩個文件合並後生成一個可執行目標文件。

D. C++中什麼是編譯時,什麼是運行時,二者有何區別

編譯階段主要進行語法的檢查,無誤。將程序代碼轉換成目標代碼(二進製表示,打開看不懂),沒有和操作系統進行連接,不能運行。完成連接後,程序能夠進入系統運行。
運行時,一定是編譯過的,沒有語法錯誤。編譯時,沒有生成目標文件,可能有語法錯誤。

E. 我下載了一個c語言編譯器,編譯完成後怎樣運行呢

首先 你要保證編譯器編譯的時候沒有出錯

如果確定沒有出錯 那麼 一般有兩種運行方式

一種是 你的編譯器自帶運行按鈕,那麼可以通過編譯器的圖形界面運行
點擊按鈕 或者使用快捷鍵。

如果沒有,那麼可以找你編譯出來的exe文件
命令行手動運行。

PS 帶參數的可執行文件 必須命令行運行。

F. 單片機執行用c編譯的程序時,每執行一行語句所需要的時間是多少

不確定,這個和單片機的性能,編譯器性能,語句復雜度都有關系。
就像你不能要求1.8G的CPU運行速度和2.8G的同樣快,單片機的性能很重要。
同樣一條C語句,不同的編譯器可能翻譯成不同條數的機器碼指令,當然,一般一個單片機只認識很有限編譯器編出來的目標碼,這條基本可以忽略。
還有就是C語句是什麼語句,比如運行i++一般只需要一個指令周期,i=i+1卻最少需要三個。

所以你的問法應該是「核心頻率是XXXHz的單片機,每秒能執行多少匯編指令?」

G. C語言文件的編譯與執行的四個階段並分別描述

開發C程序有四個步驟:編輯、編譯、連接和運行。

任何一個體系結構處理器上都可以使用C語言程序,只要該體系結構處理器有相應的C語言編譯器和庫,那麼C源代碼就可以編譯並連接到目標二進制文件上運行。

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

2、編譯:將源程序轉換為目標文件(Obj文件)。

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

4、運行:執行,獲取運行結果的EXE文件。

(7)c編譯器運行期擴展閱讀:

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

1、首先,源代碼文件測試。以及相關的頭文件,比如stdio。H、由預處理器CPP預處理為.I文件。預編譯的。文件不包含任何宏定義,因為所有宏都已展開,並且包含的文件已插入。我歸檔。

2、編譯過程是對預處理文件進行詞法分析、語法分析、語義分析和優化,生成相應的匯編代碼文件。這個過程往往是整個程序的核心部分,也是最復雜的部分之一。

3、匯編程序不直接輸出可執行文件,而是輸出目標文件。匯編程序可以調用LD來生成可以運行的可執行程序。也就是說,您需要鏈接大量的文件才能獲得「a.out」,即最終的可執行文件。

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

H. 同一段程序,不同的編譯工具,運行時間會不同嗎 就比如C-FREE和VC6++

會的,會有很大的差異的。因為不同的編譯器會對代碼進行不同的優化。你如果你Intel的編譯器,可能會更快!
intel 編譯器:

https://software.intel.com/en-us/intel-parallel-studio-xe/

I. 在c語言中,程序運行期間,其值可以改變的量叫做()

在c語言中,程序運行期間,其值可以改變的量叫做變數。

當在窗體中設計用戶界面時,c語言會自動為產生的對象(包括窗體本身)創建一組變數,即屬性變數,並為每個變數設置其預設值。這類變數可供用戶直接使用,比如引用它或給它賦新值。用戶也可以創建自己的變數,以便存放程序執行過程中的臨時數據或結果數據等等。

(9)c編譯器運行期擴展閱讀:

變數的作用域由聲明它的位置決定。如果在過程中聲明變數,則只有該過程中的代碼可以訪問或更改變數值,此時變數具有局部作用域並被稱為過程級變數。如果在過程之外聲明變數,則該變數可以被Script中所有過程所識別,稱為Script級變數,具有Script級作用域。

變數可以保存程序運行時用戶輸入的數據、特定運算的結果以及要在窗體上顯示的一段數據等。變數聲明後沒有賦值的話,編譯器會自動提示並賦予默認值。

J. c語言中靜態變數需要自己釋放那外部變數屬於靜態存儲方式,書上說靜態變數的生存期是整個程序的運行期

對,一個運行的程序屬於一個進程,進程是由操作系統管理的,程序結束了,該程序所佔用的資源會由操作系統來回收。

靜態變數的靜態:變數佔用的存地址不釋放,也就是說它的地址它從頭到尾一內直占著,容不給其他內存單元佔用而已,其本身的值是可以改變的。

動態的變數:比如調用函數體里定義的變數,在函數執行後便釋放出去,把有用的地址資源貢獻給其他量,釋放以後如果你用指針來列印這個地址的值的話,就很有可能不是原來的值了。

(10)c編譯器運行期擴展閱讀:

靜態變數也可以用於存儲常數。具體來說,靜態變數(全局變數及匯編語言里定義的符號亦同)可用const,constant或final(根據語言決定)等關鍵字標識,這時其值就會在編譯時設定,並且無法在運行時改變。

編譯器通常將靜態常量與文本一起置於目標文件的文本區域,而非常量初始化數據則置於數據區;而如若有需要,有些編譯器還可選擇為其開辟專用區;為防止常數變數被錯誤的指針寫入覆蓋,亦可在這塊區域啟用內存保護機制。

閱讀全文

與c編譯器運行期相關的資料

熱點內容
ubuntu壓縮zip 瀏覽:2
vigenere演算法的方法是什麼 瀏覽:666
pdf保護破解 瀏覽:341
仿微信聊天系統源碼廣州公司 瀏覽:106
怎麼查看我的世界伺服器日誌 瀏覽:430
怎麼從程序員走到成功 瀏覽:824
把軟體放入文件夾中如何移出 瀏覽:209
紅包源碼企業即時聊天軟體 瀏覽:581
xp安裝python 瀏覽:10
西門子參數編程讀取半徑值 瀏覽:403
洗首飾解壓小視頻 瀏覽:966
01背包問題的演算法解決 瀏覽:373
sd卡放哪個文件夾 瀏覽:301
解釋器模式java 瀏覽:104
android垂直自動滾動條 瀏覽:153
計算器java小程序 瀏覽:27
java的簡稱 瀏覽:68
雲伺服器公網ip地址 瀏覽:581
php對資料庫操作 瀏覽:237
java爬圖片 瀏覽:866