C51中在变量前加了static声明,编译生成的hex文件就大了几百kB,这是为什么呢?

void main()
{
static int a; //如果这里改成static int a = 0,给它赋初值后,生成的hex文件就大了几百kB?
}

未指定的静态变量的值是保存在BSS段(未指定的静态数据段)中,如果你给静态数据赋初值,那么就需要增加一个新的数据段来保存这些初值,所以就大了很多
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-05-13
变量
相似回答