全局变量在定义的时候,它的初始化操作会增加代码容量吗?已解答。
本帖最后由 jianhong_wu 于 2017-3-5 15:40 编辑问:
全局变量在定义的时候,它的初始化操作会增加代码容量吗?
★坚鸿-深圳:
我在C51的编译环境下,得到的结论是:
(1)对于全局变量或者静态局部变量(带static关键字修饰),初始化都要多额外开销一点程序的ROM容量,unsigned char,unsigned int,unsigned long三种不同的数据类型,因为数据宽度不一样,unsigned char开销的最小,其次是unsigned int,开销最大的是unsigned long。每初始化一个变量,它们三个类型依次要额外多开销3字节,4字节,6字节。请大家看我的例子截图:全局初始化的时候(1618字节):
全局不初始化的时候(1615字节):
一个是1615,一个是1618,很明显是有区别的。
(2)对于在函数内部的普通局部变量的初始化,结论是不确定的。这方面我试了4个例子,发现结论是不确定的。截图如下:
第一种:在不删除某行代码的情况下:
第二种:在删除某行代码的情况下:
综合第一种和第二种分析,发现普通局部变量的初始化与不初始化的结论是矛盾的不确定的。
页:
[1]