码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2014-10-09 14:03:13      阅读:294      评论:0      收藏:0      [点我收藏+]

标签:http   sp   linux   bs   c++   管理   as   window   windows   

全局变量未初始化:

#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   sp   linux   bs   c++   管理   as   window   windows   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!