程序典型的存儲空間安排圖

一個C程序經過編譯鏈接之後形成可執行文件,可執行文件即由一條條的彙編指令組成,其排布方式如圖1所示。歷史沿襲至今,C程序一直由以下幾部分組成:
正文段:由CPU執行的機器指令組成。通常,正文段是可共享的,在存儲器中也只有一個副本,另外,正文段通常是隻讀的,防止程序由於意外修改其指令。
初始化數據段:通常將此段稱爲數據段,它包含了程序中需要明確賦初值的變量。
未初始化數據段:在程序開始執行之前,內核將此段中的數據初始化爲0或空指針。
棧:自動變量以及每次函數調用時所需保存的信息存放在此段中。每次函數調用時,其返回地址以及調用者的環境信息都存放在棧中。然後,最近被調用的函數在棧上爲其自動和臨時變量分配存儲空間。
堆:通常在堆中進行動態存儲分配。

這裏寫圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章