我在考虑运行时性能,具体取决于局部变量的定义。哪个变体可以执行得更快或没有区别?
变种1:
extern uint8 GlobalArray[10];
void myFunc(void)
{
int i;
uint8_t* pNumber;
for (i=0; i<10; ++i)
{
pNumber = &(globalArray[i]);
// Do anything with pNumber
}
}
变种2:
extern uint8 GlobalArray[10];
void myFunc(void)
{
int i;
for (i=0; i<10; ++i)
{
uint8_t* pNumber = &(globalArray[i]);
// Do anything with pNumber
}
}
答案 0 :(得分:4)
1)和2)之间没有区别,因为在源中声明变量的时间与在实际应用程序中将其放入堆栈/寄存器中的时间之间没有关系。
最好尽可能缩小范围,但这与性能无关。