1. 程式人生 > >執行C程式的步驟

執行C程式的步驟

提綱:這篇文章介紹了一個編輯好的C程式是如何在整合開發環境中執行的,其中簡介了編譯、連結、執行等步驟

一、背景知識
C語言編寫的程式是源程式,計算機不能直接識別和執行高階語言所寫的指令,必須用編譯器把C源程式翻譯成二進位制形式的目標程式,然後再將目標程式與系統的函式庫以及其他目標程式連線起來,形成可執行程式。
將一個C程式編寫好之後,要在計算機上執行,必須經歷以下幾個階段:
二、翻譯
1、檔名約定
不同的環境具有不同的命名約定,這裡以Windows系統為例
(1)C原始碼的以“.c”為字尾,原始檔儲存程式的定義,也稱為定義檔案;
(2)有#include指令包含到C原始碼的檔案稱為標頭檔案,用來儲存檔案的宣告,以”.h”為字尾;
(3)C源程式編譯後形成的檔案稱為目標檔案,以”.obj”為字尾;
(4)將目標檔案進行連線處理後得到的檔案稱為可執行檔案,以”.exe”為字尾。
2、編譯
編譯分為兩個階段
階段一:預處理階段
C前處理器在原始碼進行編譯之前對其進行一些文字性質的操作,它的主要任務包括:
(1)刪除註釋;
(2)插入被#include指令包含的檔案內容、定義;
(3)替換由#define指令定義的符號;
(4)確定程式碼的部分內容是否應該根據一些條件編譯指令進行編譯。
階段二:正式編譯階段
正式編譯是對源程式進行檢驗,判斷有無語法錯誤。
說明:編譯的物件是源程式檔案(.c),一次編譯只能得到與一個源程式檔案對應的目標檔案(.obj)。
3、連結
將編譯後得到的所有的目標檔案連線裝配起來,再與函式庫相連線成一個整體,生成一個可供計算機執行的可執行程式(.exe)。
三、執行


程式的執行也分很多階段
階段一:由作業系統將程式載入到記憶體中,同時那些不是儲存在堆疊中的尚未初始化的變數將在此時得到初值
階段二:一個處理日常事物的小型的啟動程式和可執行程式連線在一起,接著便開始呼叫main函式
階段三:程式碼開始執行
              程式將使用一個執行時堆疊,該堆疊的
作用是儲存函式的“區域性變數”和“返回地址”;
              程式同時也可以使用靜態記憶體,儲存在靜態
記憶體中的變數在程式的執行過程中將一直儲存它的值。
階段四:程式的最後一個階段就是程式的終止,當然終止也分為”正常終止“和”非正常終止“,正常終止就是main函式返回,非正常終止可能由多種情況引起。