免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12
最近访问板块 发新帖
楼主: cgmeco
打印 上一主题 下一主题

C语言中全局变量,局部变量赋值民否对编译可执行文件大小的影响! [复制链接]

论坛徽章:
0
11 [报告]
发表于 2010-12-22 11:01 |只看该作者
8、        全局变量a赋初值5和不赋值两种情况,对生成的可执行文件大小有什么影响?假如是函数内的局部变量b呢?为 ...
cgmeco 发表于 2010-12-21 23:19



    敢问lz,4个beta是啥?

论坛徽章:
0
12 [报告]
发表于 2010-12-22 11:17 |只看该作者
再小的程序装载后也要一页内存吧,我猜
文件系统里小文件倒是可以压缩存放

论坛徽章:
0
13 [报告]
发表于 2010-12-22 11:25 |只看该作者
只有注释语句才不会影响可执行文件的大小

论坛徽章:
0
14 [报告]
发表于 2010-12-22 13:26 |只看该作者
建议看下《程序员的自我修养》,你就全明白了。
veking 发表于 2010-12-22 09:17

顶这个。
另外,这个问题对于软件开发压根不重要,面试出这种题实在@@##。

论坛徽章:
0
15 [报告]
发表于 2010-12-22 14:40 |只看该作者
一个程序员的自我修养——链接 装载与库
值得一看
对于你的问题:
初始化了的全局(静态)变量是放在.data section的
没有初始化的是放在.bss section
而.bss section是虚拟的 也就是说在ELF格式的目标文件中是不存在的
你可以通过
readelf -s xxx.o 看一下 VMA和PMA与别人的是重叠的
所以加不加初始化了的全局变量可执行文件会变化
p.s:对于初始化为0的全局变量一样是放在.bss section的 这样可以节省磁盘空间

论坛徽章:
1
CU十二周年纪念徽章
日期:2013-10-24 15:41:34
16 [报告]
发表于 2010-12-22 14:46 |只看该作者
建议看下《程序员的自我修养》,你就全明白了。
veking 发表于 2010-12-22 09:17



    貌似很火的一本书,大家都可以看看。里面把编译和链接讲得蛮清楚的,这书估计参考了以前的《编译器和连接器》
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP