изменить значение переменной внутри структуры с помощью обратного вызова из периферийного устройства АЦП - PullRequest
0 голосов
/ 13 февраля 2019

Я сейчас программирую микроконтроллер PIC.

Когда структура создается так, как я это делаю, меняется ли адрес переменных этой структуры каждый раз, когда я пытаюсь получить к ним доступ?

Или это как статическая переменная, означающая, что адрес определяется во время компиляции и не будет изменяться во всей программе?(Я думаю, что это не изменится, но я не уверен.)

struct {
   unsigned char age;
} arda_t;

1 Ответ

0 голосов
/ 27 февраля 2019

Статично (по заданному адресу памяти) только , если объявлено в глобальной области действия .Адрес памяти определяется компоновщиком и остается на месте.

Вы сказали, что структура была объявлена ​​"с помощью обратного вызова", подразумевая, что вы объявляете эту переменную в функции.В этом случае ее адрес может отличаться каждый раз, когда функция вызывается, поскольку переменная «существует» только для срока службы / области действия этой функции.

Если вы хотите, чтобы обратный вызов / прерывание обращались к переменной, которая уже существуетсуществует, вы можете сделать эту переменную глобальной (доступной для всей программы) или статической глобальной (доступной только для этого файла).

...