2017-10-10 85 views
0

我知道當你在C中聲明一個全局的未初始化變量時,它存在於.bss段中。但是如果你把這個值設置爲等於某個函數中的某個值,會發生什麼?它移動到堆棧段嗎?初始化全局變量存儲器佈局

回答

1

它保持原樣;你只是改變了它的價值。它放在bss部分只是因爲默認情況下全局變量初始化爲零,因此將它們直接包含在可執行文件中會浪費(磁盤)空間。程序初始化後,您的bss變量可以非常高興地具有非零值。