c程式的執行過程

2022-01-31 07:32:48 字數 638 閱讀 1548

1.hello程式的生命週期是從乙個高階c語言程式開始的,然後為了在系統上執行hello.c程式,每條c語句都必須被其他程式轉化為一系列的低階機器語言指令。

2.預處理階段。預處理器(cpp)根據以字元#開頭的命令,修改原始的c程式。#include 命令告訴預處理器讀取系統標頭檔案stdio.h的內容,並將它直接插入到程式文字中。結果就得到另乙個c程式,通常以.i作為副檔名。

3.編譯階段。編譯器(ccl)將文字檔案hello.i翻譯成文字檔案hello.s。它包含乙個組合語言程式。組合語言程式中的每條語句都以一種標準的文字格式確切地描述了一條低階機器語言指令。組合語言為不同編譯器提供了通用的輸出語言。

4.彙編階段。彙編器(as)將hello.s

翻譯成機器語言指令。並將結果儲存在目標檔案hello.o中。hello.o是一種二進位制檔案。它的位元組編碼是機器語言指令而不是字元。

5.連線階段。hello程式呼叫printf函式。它是c編譯器都會提供的標準c庫中的乙個函式。printf函式存在於乙個名為printf.o的單獨的預編譯好的目標檔案中,而這個檔案必須以某種方式合併到我們的hello.o程式中。聯結器就是負責這種合併的。

C 程式執行過程

要理解乙個程式的執行過程,首先要理解什麼是編譯器。我們用c語言寫的程式,計算機只能識別機器語言 二進位制指令 計算機並不能理解。因此,必須將c語言轉換為機器語言。編譯器就是用來實現這一功能的。編譯器將源 檔案按照一定的對應規則映射程計算機能夠識別的二進位制指令。關於原始檔 目標檔案和可執行檔案 原始...

C 程式執行過程

第一部 進入static void main 2.1 執行private system.componentmodel.container components null 作用是container 類是icontainer 介面的預設實現。容器是封裝和跟蹤零個或更多個元件的物件。在此上下文中,包容是指...

C 程式的簡單執行過程

編譯階段 main.c 預編譯 main.i 編譯 main.s 彙編 o obj 二進位制可重定位目標檔案 預編譯 刪注釋,預編譯指令 編譯 語法 語義分析,的優化,彙總所有的符號 彙編 把彙編指令轉化成特定平台的機器碼 資料產生符號。指令只產生乙個符號 函式名 1.合併所有obj檔案的段 所有相...