- 相關(guān)推薦
C語(yǔ)言程序的存儲區域
C語(yǔ)言編寫(xiě)的程序經(jīng)過(guò)編譯-連接后,將形成一個(gè)統一文件,它由幾個(gè)部分組成。在程序運行時(shí)又會(huì )產(chǎn)生其他幾個(gè)部分,各個(gè)部分代表了不同的存儲區域:
1、代碼段(Code或Text)
代碼段由程序中執行的機器代碼組成。在C語(yǔ)言中,程序語(yǔ)句進(jìn)行編譯后,形成機器代碼。在執行程序的過(guò)程中,CPU的程序計數器指向代碼段的每一條機器代碼,并由處理器依次運行。
2、只讀數據段(RO data)
只讀數據段是程序使用的一些不會(huì )被更改的數據,使用這些數據的方式類(lèi)似查表式的操作,由于這些變量不需要更改,因此只需要放置在只讀存儲器中即可。
3、已初始化讀寫(xiě)數據段(RW data)
已初始化數據是在程序中聲明,并且具有初值的變量,這些變量需要占用存儲器的空間,在程序執行時(shí)它們需要位于可讀寫(xiě)的內存區域內,并具有初值,以供程序運行時(shí)讀寫(xiě)。
4、未初始化數據段(BSS)
未初始化數據是在程序中聲明,但是沒(méi)有初始化的變量,這些變量在程序運行之前不需要占用存儲器的空間。
5、堆(heap)
堆內存只在程序運行時(shí)出現,一般由程序員分配和釋放。在具有操作系統的情況下,如果程序沒(méi)有釋放,操作系統可能在程序(例如一個(gè)進(jìn)程)結束后回收內存。
6、棧(stack)
棧內存只在程序運行時(shí)出現,在函數內部使用的變量、函數的參數以及返回值將使用?臻g,?臻g由編譯器自動(dòng)分配和釋放。
【C語(yǔ)言程序的存儲區域】相關(guān)文章:
C語(yǔ)言順序存儲結構07-10
C語(yǔ)言變量存儲布局07-05
C語(yǔ)言存儲類(lèi)入門(mén)學(xué)習10-22
C語(yǔ)言程序試題04-26
C語(yǔ)言經(jīng)典程序題09-17
c語(yǔ)言鏈接程序08-26
C語(yǔ)言程序介紹08-23
C語(yǔ)言程序實(shí)例10-10