Ansi C во время выполнения глобальные и локальные переменные производительности - PullRequest
0 голосов
/ 08 марта 2019

Я думаю о производительности во время выполнения в зависимости от определения локальной переменной. Какой вариант может быть выполнен быстрее или нет разницы?

Вариант 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 Ответ

4 голосов
/ 08 марта 2019

Нет разницы между 1) и 2), потому что нет никакой связи между тем, когда переменная объявлена ​​в источнике, и когда она помещается в стек / в регистр в реальном приложении.

Хорошей практикой является максимально возможное уменьшение объема, но это никак не связано с производительностью.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...