從<Unix高級環境編程>中總結
按照高位排序:
1.棧,自動變量存儲,每次函數調用的信息如函數結束後返回到的地址,調用者的環境信息.新調用的函數會為其自動臨時變量分配空間.這就是遞歸函數的重點,每一次遞歸函數自我調用,一個新的棧幀會創建,因此他們的數據不會互相干涉到.
2.堆,程序運行時動態分配的數據會被存儲在此.
3.未初始化數據段,通常被稱為"bss"段,包含在程序中未被顯式地初始化的全局變量,在程序被執行前,該段中的數據被內核初始化為數字0或者空指針.
4.已初始化數據段,通常被稱為"data"段,包含在程序中被顯式地初始化的全局變量.
5.文字段,通常被稱為"code"段,CPU可執行的機器指令(二進制代碼),文字段是可共享的,因此對於頻繁使用的程序,在內存中僅需要維護一份.