c 各個階段解釋

2021-07-23 19:47:24 字數 861 閱讀 8262

由多個原始檔組成的c程式,經過編輯、預處理、編譯,鏈結等階段會生成最終的可執行程式。下面哪個階段可以發現被呼叫的函式未定義?

a、預處理

b、編譯

c、鏈結

d、執行

a:預處理是

c語言程式從源**變成可執行程式的第一步,主要是

c語言編譯器對各種預處理命令進行處理,包括標頭檔案的包含、巨集定義的擴充套件、條件編譯的選擇等。

b:編譯之前,c

語言編譯器會進行詞法分析、語法分析

(-fsyntax-only) 、語義分析

,接著會把源**翻譯成中間語言,即組合語言

。編譯程式工作時,先分析,後綜合,從而得到目標程式。所謂分析,是指詞法分析和語法分析;所謂綜合是指**優化,儲存分配和**生成。

值得一提的是,大多數的編譯程式直接產生機器語言的目標**,形成可執行的目標檔案,但也有的編譯程式則先產生組合語言一級的符號**檔案,然後再呼叫匯程式設計序進行翻譯加工處理,最後產生可執行的機器語言目標檔案。 

c:鏈結是處理可重定位檔案,把它們的各種符號引用和符號定義轉換為可執行檔案中的合適資訊(

一般是虛擬記憶體位址

)的過程。假如乙個程式包含多個檔案,在分別對每個源程式進行編譯並得到多個目標程式後,要把這些目標程式連線起來,同時還要同系統提供的資源(如函式庫)連線成為乙個整體,如果不出現錯誤,會得到乙個字尾為 .exe的可執行檔案

到了鏈結階段才會知道各個函式的呼叫關係,才能出現呼叫某個函式,但是該函式沒有宣告找不到的情況。

addition:

1、涉及要記憶體分配的地方,一般是在程式執行的時候才分配相應的空間,否則分配記憶體有什麼用呢。mallocd 在堆上動態分配記憶體,在執行時期。

解釋 Alpha,Beta,RC,OEM各個版本

alpha 是內部測試版,一般不向外部發布,會有很多bug.一般只有測試人員使用。beta 也是測試版,這個階段的版本會一直加入新的功能。在alpha版之後推出。rc release candidate 顧名思義麼 用在軟體上就是候選版本。系統平台上就是發行候選版本。rc版不會再加入新的功能了,主要...

軟體測試的各個階段

軟體測試的各個階段 這幾個階段其實就是乙個pdca 戴明迴圈 p plan 代表計畫,d do 代表執行,c check 代表檢查,a action 代表處理。1.測試需求 資料表明,超過50 的缺陷 於錯誤的需求,所以對於需求文件,應該遵循盡早測試的原則,對需求進行測試。a.對需求規格說明數進行要...

erp各個名詞解釋

pmc含義 就是物料控制,pmc包括pc生產計畫和mc物料計畫。erp enterprise resource planning 企業資源計畫 crm customer relational management 客戶關係管理 bpr business process reengineering 企...