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