Сколько времени занимает доступ к памяти стека? - PullRequest
0 голосов
/ 02 ноября 2019

Влияет ли повторное объявление одной и той же переменной снова и снова на производительность кода?

int i,a;
for(i=0;i<10;i++)
{
// Some operations with a
}

V / S

int i;
for(i=0;i<10;i++)
{
int a;
// Some operations with a
}

1 Ответ

2 голосов
/ 02 ноября 2019

Обычно «переменные стека», которые на самом деле являются локальными переменными, имеют нулевую стоимость. Единственная цена, которую вы заплатите, - это какая-то инициализация.

Компилятор может резервировать память для этого значения или нет. Во втором случае вы на самом деле не используете a, поэтому он, вероятно, будет устранен проходом оптимизации, что сделает его по-настоящему нулевым.

Не думайте о них с точки зрения «стека». Это устаревшая концепция, которая предшествует оптимизации компиляторов.

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