Я работаю с Aurix MUC, я пытался прочитать содержимое памяти после выполнения программы, чтобы увидеть, что он написал в мемуарах
Я заметил, что когда я использую глобальную переменную в функции, новое значение этой глобальной переменной после обработки в функции не записывается в память.
Вот пример:
int a = 100;
void plus (int a)
{
a = a + 17;
}
int main (void)
{
plus(a);
return 0;
}
когда я отображаю содержимое памяти, я нахожу значение 100
и я не могу найти новое значение a, которое обычно равно 117.
Я пытался объявить переменную a как volatile, но это ничего не меняет
с другой стороны, если я делаю вычисления непосредственно в основном, как это
int a = 100;
int main (void)
{
a = a + 17
return 0;
}
вот так я нахожу в памяти значение 117.
поэтому мне нужно понять, где находятся значения переменных сохранения, используемые в функциях вызова?
и почему новая переменная a не записывается в память,
и почему переменные, объявленные в local, также не записываются в память?