看板 C_and_CPP 關於我們 聯絡資訊
很抱歉~這問題不知道是否適合po在這 我再看 程式設計師的自我修養 第三章 他途中提到一句話 "bss section是不占用磁碟空間" 就此令我無法理解... google的老半天 有幾篇文章 但他們好像也沒解釋得很清楚也直接下結論 請問各位該怎麼理解這句話 static int x; 至少他需要記錄bss section 需要占用 "多少"byte這個值吧 "多少" 難道不用一起寫到elf檔案嗎? 他是有提到"預留多少空間" 這個預留值再怎樣都要寫到elf檔案吧@@ 請教各位 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 122.147.15.66
purpose:bss裡面放的變數按照標準規定都要初始化成0,假設共有三個 03/27 17:37
purpose:int則bss至少要有12 byte,那只要從開頭位址分配大於12的 03/27 17:38
purpose:實體記憶體空間就沒問題。從分頁表找一個全0的分頁就解決 03/27 17:40
purpose:bss內的變數因為固定是0,所以不需要用硬碟空間記個別的值 03/27 17:41
QQ29:p大妳說的12byte 這個"12"難道不用記錄在硬碟嗎 elf檔案 03/27 21:26
purpose:bss section header 記載12這個大小,section本體可不記錄 03/27 21:43
purpose:62頁裡的 header 說 bss size=4,其檔案偏移位置跟 rodata 03/27 21:51
purpose:一樣都是再 0x98 對照63頁的圖,可知bss本體不佔檔案空間 03/27 21:52
QQ29:bss section header是指elf的header裡的一個資訊嗎? 03/27 23:11
pichubaby:12應該會被記錄在.text 所謂不佔空間 是指我不用去紀錄 03/28 02:50
pichubaby:0x00000000 如此 03/28 02:51
QQ29:Text不是紀錄程式碼嗎,12我看書無法參悟到底存哪 03/28 10:10
QQ29:另外問下 data secetion or bss section大小有限制嗎? 03/28 10:49
QQ29:之前不懂這些 有看到推文 回說 靜態陣列 太大 有人說宣告在 03/28 10:49
QQ29:global試試看...難道這塊section 比較大嗎? 03/28 10:50
pichubaby:程式在執行前會先進行一些初始化 我覺得應該會在那邊 03/28 14:33