翻譯環境與執行環境--《C與指針》

在ANSI C標準的實現中,存在兩種環境:翻譯環境執行環境

1、翻譯環境

翻譯環境,是指“源代碼被轉換爲可執行機器指令”的環境。在翻譯過程中,C源文件經編譯,轉換爲目標代碼。然後,由鏈接器(linker),將目標代碼文件,與標準C函數庫、程序員個人程序庫所引用到的函數,捆綁到一起,鏈接成一個單一完整的可執行程序。

編譯階段,先是預處理器根據預處理指令(#include、#define等)執行文本操作,對源代碼進行修改。如:#include<stdio.h>,讀入用名爲stdio.h的庫函數頭文件內容,替換該指令語句;# define PAI 3.14,表示把PAI定義爲3.14,源文件中任何PAI,都會被替換爲3.14。另外,刪除“\\”、“/**/”註釋內容,也是該階段起作用。

然後,源代碼經過解析,解讀語句,判斷是否需要報錯、發出警告,生成目標代碼。如果程序員在編譯命令中要求編譯器進行優化,則由優化器對目標代碼進一步處理,提高執行效率。但優化過程需要額外時間,故程序調試中,一般不啓用,生產正式產品時再加入。

2、執行環境

執行環境,是指“實際執行代碼”的環境。在該過程中,程序載入到內存中,同時,不是存儲在堆棧中且未初始化的變量進行初始化。然後開始運行程序。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章