变量初始化源代码如下:
int main(void)
{
int a = 12; //变量初始化
if (a > 10) {
a++;
REG32(0xFFFFC000) = a;
}
else{
a--;
REG32(0xFFFFC000) = a;
}
while(1);
return 0;
}
初始化和未初始化(修改上述源代码int a = 12 -> int a)编译后的反汇编代码如下:
结论: 从上图结果来看,局部变量初始化,增加了两行指令实现赋初始值的功能,具体的影响依赖于主频。
注:
生成反汇编的过程,优化等级设置为O0,否则可能看不出差异