首页 > 编程语言 > 详细

c++全局变量是否初始化的区别

时间:2014-10-09 13:32:23      阅读:249      评论:0      收藏:0      [点我收藏+]

全局变量未初始化:

#include <Windows.h>
int g_buf[1024*1024];
int main()
{
    Sleep(-1);
    return 0;
}

编译后exe大小为47k.

 

全局变量初始化:

#include <Windows.h>
int g_buf[1024*1024]={1};
int main()
{
    Sleep(-1);
    return 0;
}

编译后的exe为4M

原理:全局变量初始化的话, 占据data段,所以exe变大。 如果没有初始化,则只在bss段记录,data段不填充。

执行exe的时候,通过任务管理器查看进程内存大小, 均为4M, 没有延迟加载(windows)

url:

https://github.com/1184893257/simplelinux/blob/master/bss.md

c++全局变量是否初始化的区别

原文:http://www.cnblogs.com/zozoiiiiii/p/4012828.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!