努力而向上~
1. .bss
bss,block started by symbol,用來存放程序中未初始化的全局變量和未初始化的static變量的一塊內存區域。
未初始化的全局變量和局部靜態變量的默認值爲0。正因爲如此,才把它們放到bss段,而非data段。在data段爲它們分配空間並存放數據0沒有多大意義。
bss段只是爲未初始化的全局變量和局部靜態變量預留位置而已,並沒有內容,在文件中不佔據空間。
2. .data
用來存放程序中已初始化的全局變量和static變量的一塊內存區域。
3. .rodata
read only data,存放只讀數據,一般是const修飾的只讀變量和字符串常量。
可以把rodata段數據放到只讀屬性的存儲器裏,可以避免任何對只讀變量修改的非法操作。
4. .text
用來存放程序執行代碼的一塊內存區域。
5 自定義段
GCC提供了一個擴展機制,程序員可以指定變量所處的段:attribute((section(“seg name”)))。
在全局變量和函數之前加上__attribute__((section(“seg name”)))屬性,就可以把相應的函數或變量放到“seg name”的段中。