《程序員的自我修養—鏈接、裝載與庫》 目標文件

可執行文件(目標文件)的格式:
在 Windows 下都按照 PE-COFF 格式存儲,Linux 下按照 ELF 格式存儲。

程序源代碼被編譯後主要分爲兩種段:程序指令和程序數據。
代碼段屬於程序指令,而數據段和 .bss 段屬於數據段。

  • .data 段保存的是已經初始化了的全局變量和局部靜態變量。
  • .rodata 段保存的是隻讀數據,一般是程序裏面的只讀變量和字符串常量。
  • .bss 段保存的是未初始化的全局變量和局部靜態變量。

static int x1 = 0;
// x1 爲 0,可以認爲 x1 未被初始化(缺省值爲 0),存放在 .bss
// 這樣可以節省空間,因爲 .bss 不佔磁盤空間
static int x2 = 1;
// x2 存放在 .data

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