Нужно уточнить назначение указателя на структуру PERSISTENT, определенную в пространстве символов - PullRequest
0 голосов
/ 17 марта 2019

Я хотел бы получить некоторые пояснения по назначению указателя на структуру (хотя моя программа компилируется без ошибок). У меня есть структура, определенная в заголовке исходного файла (я удалил typedef и связанный с ним тег, потому что я подозревал, что могут быть некоторые проблемы между назначением указателя на структуру typedef и непосредственно на структуру). В пространстве символов над методами я определил структуру как PERSISTENT, используя директиву #pragma, чтобы структура сохраняла свои значения. Я также явно инициализировал его и объявил указатель на структуру под названием «таймер». Внутри метода, который управляет структурой, я пытался назначить указатель timer = & event_time, но я думал, что мне не нужен оператор address-of, так как event_time сам по себе уже является указателем. Я думал, что компилятор знает, что идентификатор event_time является указателем, и я мог бы обращаться с ним, как если бы я говорил идентификатор строкового литерала. Очевидно нет. Некоторые разъяснения будут очень приветствоваться. Ниже приведен код.

Заголовочный файл:

//typedef
struct Event_Time {
    uint8_t day;
    uint8_t hr;
    uint8_t min;
    TCN tc;
};//Event_Time;

А теперь исходный файл:

#include "Event_Table.h"



#pragma PERSISTENT(event_time)
struct Event_Time event_time={0,0,0,tc0};
struct Event_Time *timer;

 

void check_Event(){

timer=&event_time;
// more code...
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...