首页 > 代码库 > c++全局变量是否初始化的区别
c++全局变量是否初始化的区别
全局变量未初始化:
#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++全局变量是否初始化的区别
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。