連結器與載入器與執行檔格式
下列全域變數中,一般會放在.bss區段的組合為何?
int a = 5;
int b;
static int c = 0;
const int d = 7;
- Aa與b
- Bb與c
- Cc與d
查看答案與解析
正確答案:B. b與c
a有非0的初始值,所以放在.data;b沒有初始值而從0開始,所以放在.bss;c的初始值為0,不需要在檔案中儲存0,所以放在.bss。d是const常數,所以放在禁止寫入的.rodata。static是決定能否被其他檔案看見的,要放在哪個區段則取決於初始值與const。
- A. a有初始值5,所以是.data。
- B. 正確。是沒有初始值以及初始值為0的變數。
- C. d是不會被改寫的常數,所以是.rodata。