通过小代码体验程序中BSS段和DATA段的差异
生活随笔
收集整理的這篇文章主要介紹了
通过小代码体验程序中BSS段和DATA段的差异
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
注:原發(fā)表在Hadoop技術(shù)論壇
?BSS(Block Started by Symbol)用來(lái)存儲(chǔ)未初始化的全局變量,值為0的通常會(huì)被編譯器認(rèn)為未初始化,屬于靜態(tài)內(nèi)存分配區(qū),不會(huì)占用程序文件空間
DATA
用來(lái)存儲(chǔ)已經(jīng)初始化的全局變量,也屬于靜態(tài)內(nèi)存分配區(qū),會(huì)占用程序文件空間
TEXT
代碼段,存儲(chǔ)程序執(zhí)行的代碼指令,會(huì)占用程序文件空間
代碼一:
int a[1024*1024*10] = {0};
int main() { return 0; }
代碼二:
int a[1024*1024*10] = {1};
int main() { return 0; }
使用同樣的編譯上段兩段代碼,可以觀察到文件大小相差很大,代碼二會(huì)將數(shù)組a算進(jìn)去。
轉(zhuǎn)載于:https://blog.51cto.com/mooon/910287
總結(jié)
以上是生活随笔為你收集整理的通过小代码体验程序中BSS段和DATA段的差异的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: c++ using namespace
- 下一篇: Cacti 插件中setup.php 文