реклама на сайте
подробности

 
 
> Глобальная или локальная переменная.
Jenya7
сообщение Nov 30 2016, 12:41
Сообщение #1


Профессионал
*****

Группа: Участник
Сообщений: 1 778
Регистрация: 29-03-12
Пользователь №: 71 075



У меня в цикле в main.c крутиться функция.
Код
while (1)
{

    void Func(void)
    {
         uint32_t result;
         result = ReadTask(task_idx, &ram_task);
         If (result)
         {
              result = EvaluateTask(&ram_task);
              if (result)  //do something
         }
    }

}

переменную result можно создать локально или глобально. если создать локально то при каждом заходе в функцию переменная будет создаваться в стэке.
не то что бы это мне как то мешало но вообще как лучше ?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Jenya7
сообщение Nov 30 2016, 13:04
Сообщение #2


Профессионал
*****

Группа: Участник
Сообщений: 1 778
Регистрация: 29-03-12
Пользователь №: 71 075



с точки зрения скорости обращение к глобальной переменной в RAM или локальной в стэк займет одинаковое количество инструкций. или я не прав?
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Nov 30 2016, 13:18
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(Jenya7 @ Nov 30 2016, 16:04) *
с точки зрения скорости обращение к глобальной переменной в RAM или локальной в стэк займет одинаковое количество инструкций. или я не прав?

Не будет стека - в большинстве случаев эта локальная переменная не уйдет дальше регистра процессора.
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 29th August 2025 - 15:08
Рейтинг@Mail.ru


Страница сгенерированна за 0.01404 секунд с 7
ELECTRONIX ©2004-2016