C語(yǔ)言程序執(zhí)行中的許多步驟。要了解C語(yǔ)言程序的流程,首先我們來(lái)看一個(gè)簡(jiǎn)單的程序。
源文件:simple.c
代碼 -
#include <stdio.h>
void main(){
printf("Hello C Language\n");
}
我們?cè)囍ㄟ^(guò)下面給出的圖示來(lái)了解上述程序的流程。
根據(jù)上面執(zhí)行流程,我們簡(jiǎn)要說(shuō)明每個(gè)階段的處理過(guò)程:
(1) C語(yǔ)言程序(源代碼)首先發(fā)送到預(yù)處理器(preprcessor)。預(yù)處理器負(fù)責(zé)將預(yù)處理指令轉(zhuǎn)換成各自的值。預(yù)處理器生成擴(kuò)展的源代碼(Expanded source code)。
(2)將擴(kuò)展源代碼(Expanded source code)發(fā)送給編譯器(Compiler),編譯代碼并將其轉(zhuǎn)換為匯編代碼。
(3) 匯編代碼(Assembly code)被發(fā)送到匯編器(Assembler),匯編代碼將其轉(zhuǎn)換成目標(biāo)代碼?,F(xiàn)在生成一個(gè)simple.obj
文件。
(4)目標(biāo)代碼(Object Code)被發(fā)送到鏈接器(linker),鏈接到庫(kù),例如頭文件。 然后將其轉(zhuǎn)換為可執(zhí)行代碼。 將生成一個(gè)simple.exe
文件。
(5)可執(zhí)行代碼發(fā)送到加載器(loader),將其加載到內(nèi)存中,然后執(zhí)行。 執(zhí)行后,輸出將發(fā)送到控制臺(tái)。