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

10-08 07:35