連結器與載入器與執行檔格式
在C語言中,寫在檔案外側的全域變數「int limit = 100;」,一般會放在哪個區段?
- A.data(有初始值的資料)
- B.bss(沒有初始值的資料)
- C.text(機器碼)
查看答案與解析
正確答案:A. .data(有初始值的資料)
具有非0初始值的全域變數與靜態變數會放在.data區段,其初始值會儲存在檔案中。載入程式時,這些內容會直接複製到記憶體,因此main開始時limit已經是100。.data在執行中可被改寫,所以是允許讀取與寫入的區域。
- A. 正確。檔案中持有初始值100。
- B. .bss是初始值為0或未指定初始值的變數。
- C. .text是程式碼的區域。