通過小代碼體驗程序中BSS段和DATA段的差異

注:原發表在Hadoop技術論壇

BSS(Block Started by Symbol)用來存儲未初始化的全局變量,值爲0的通常會被編譯器認爲未初始化,屬於靜態內存分配區,不會佔用程序文件空間

DATA
用來存儲已經初始化的全局變量,也屬於靜態內存分配區,會佔用程序文件空間

TEXT
代碼段,存儲程序執行的代碼指令,會佔用程序文件空間

代碼一:
int a[1024*1024*10] = {0};
int main() { return 0; }


代碼二:
int a[1024*1024*10] = {1};
int main() { return 0; }


使用同樣的編譯上段兩段代碼,可以觀察到文件大小相差很大,代碼二會將數組a算進去。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章