C語言程序執行流程
C語言程序執行中的許多步驟。要了解C語言程序的流程,首先我們來看一個簡單的程序。
源文件:simple.c
代碼 -
#include <stdio.h>
void main(){
printf("Hello C Language\n");
}
我們試着通過下面給出的圖示來了解上述程序的流程。
根據上面執行流程,我們簡要說明每個階段的處理過程:
(1) C語言程序(源代碼)首先發送到預處理器(preprcessor)。預處理器負責將預處理指令轉換成各自的值。預處理器生成擴展的源代碼(Expanded source code)。
(2)*將擴展源代碼(*Expanded source code)發送給編譯器(Compiler),編譯代碼並將其轉換爲彙編代碼。
(3) 彙編代碼(Assembly code)被髮送到彙編器(Assembler),彙編代碼將其轉換成目標代碼。現在生成一個simple.obj
文件。
(4)*目標代碼(*Object Code)被髮送到鏈接器(linker),鏈接到庫,例如頭文件。 然後將其轉換爲可執行代碼。 將生成一個simple.exe
文件。
(5)*可執行代碼發送到加載器(*loader),將其加載到內存中,然後執行。 執行後,輸出將發送到控制檯。
現在,我們將創建上述程序的流程圖:
在上面的流程圖中,執行以下步驟來執行程序:
- 首先,將輸入文件hello.c傳遞給預處理器,然後預處理器將源代碼轉換為擴展的源代碼。擴展源代碼的擴展名為hello.i。
- 擴展的源代碼將傳遞給編譯器,然後編譯器將此擴展的源代碼轉換為彙編代碼。彙編代碼的擴展名是hello.s。
- 然後將此彙編代碼發送到彙編器,由彙編器將彙編代碼轉換為目標代碼。
- 創建目標代碼後,鏈接器將創建可執行文件。然後,加載程序將加載可執行文件以供執行。