我考虑的是运行时性能取决于局部变量的定义。哪种变体可能执行得更快或没有区别?
变体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
}
}
最佳答案
1)和2)之间没有区别,因为变量在源中声明的时间与将其放在实际应用程序的堆栈/寄存器中的时间之间没有关系。
尽可能缩小范围是一个好的做法,但这与性能无关。