taras1978
@taras1978
почти программист

Почему возникает ошибка при обращении к struct?

Использую Atme Studio
Структура такая:

struct button {
char *button_port;
uint8_t button_pin;
uint8_t flagPress;
uint8_t flagClick;
uint8_t buttonCount;
uint8_t time_button;
} button_left, button_right, button_menu;

Надо задать начальные параметры кнопок.
Вот так не работает: button_left.button_port = "PORTD"; пишет
Error expected '=', ',', ';', 'asm' or '__attribute__' before '.' token

А так работает:
struct button button_left = {"PORTD", 6, 0, 0, 0, 12};
  • Вопрос задан
  • 62 просмотра
Решения вопроса 1
jcmvbkbc
@jcmvbkbc
http://dilbert.com/strip/1998-08-24
Вот так не работает: button_left.button_port = "PORTD";
А так работает:
struct button button_left = {"PORTD", 6, 0, 0, 0, 12};

Почему возникает ошибка при обращении к struct?

Ты видишь разницу между этими двумя строчками? Первая генерирует код который присваивает значение одному полю структуры. Она должна быть там, где можно писать код -- в теле какой-нибудь функции. Нельзя написать её вне всех функций.
Вторая генерирует инициализированную структуру. Её можно написать и вне всех функций -- тогда она будет генерировать глобально видимую структуру инициализированную до начала выполнения программы. Её можно написать и внутри функции -- тогда она будет генерировать автоматическую переменную и инициализировать её в момент "выполнения".
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы