嵌入式開發學習筆記 —— bss、data、rodata、text、自定義段

努力而向上~
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”的段中。

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