|
структуры, доступ к полям |
|
|
|
Feb 8 2015, 10:08
|
Профессионал
    
Группа: Свой
Сообщений: 1 357
Регистрация: 12-04-05
Из: Петербург
Пользователь №: 4 079

|
вот у нас структура, через typedef Код typedef struct abc_s { int aa; int bb; } abc_t; создаю переменную этого типа Код abc_t abc; дальше, хочу присвоить значение полю aa в моей переменной Код abc.aa = 8; выдает ошибку. Почему? И как правильно? а затолкав в ф-ю - все нормально. Т.е. вне ф-ии нельзя, получается, проводить начальную инициализацию?
|
|
|
|
|
 |
Ответов
|
Feb 8 2015, 17:20
|

Универсальный солдатик
     
Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362

|
Цитата(SM @ Feb 8 2015, 20:14)  Обычно, так по привычке выходит... Чтобы, если что, внутри структуры можно было написать нечто вроде struct abc_s *next_item; и никто это не обругал. Попробовал. Не получается. Но и имя структуры тоже не помогает. Нужно саму структуру определить. А, нет, получилось (в обоих вариантах). Когда struct перед типом добавил. Код typedef struct { __IO uint8_t A; __IO uint8_t B; uint16_t RES; // bool a; struct Dev_t *pDev; } Dev_t;
|
|
|
|
|
Feb 8 2015, 17:35
|
Гуру
     
Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881

|
Цитата(ViKo @ Feb 8 2015, 20:20)  Попробовал. Не получается. Все получается: Код typedef struct _abc_s { int a; int b; struct _abc_s *next; } ABC_S, *PABC_S; а вот запись struct ABC_S *next; (вместо struct _abc_s *next;) по логике не совсем корректна, так как ABC_S определен через typedef, а не через сам struct. По крайней мере, не красива, если даже и корректна по стандарту (я тут не уверен).
|
|
|
|
Сообщений в этой теме
Метценгерштейн структуры Feb 8 2015, 10:08 SM правильно вот так:
abc_t abc = {8,9}; // по станд... Feb 8 2015, 10:20 _Pasha Цитата(Метценгерштейн @ Feb 8 2015, 14:08... Feb 8 2015, 11:31 Метценгерштейн я разобрался. нельзя одно поле инициализировать вн... Feb 8 2015, 12:14 SM Цитата(Метценгерштейн @ Feb 8 2015, 15:14... Feb 8 2015, 12:16  SSerge Цитата(SM @ Feb 8 2015, 19:16) Можно... Feb 8 2015, 12:40   SM Цитата(SSerge @ Feb 8 2015, 15:40) Это да... Feb 8 2015, 12:55  ohmjke Цитата(SM @ Feb 8 2015, 21:14) Обычно, та... Apr 2 2015, 13:12   CrimsonPig Цитата(ohmjke @ Apr 2 2015, 14:12) Так а ... Apr 2 2015, 13:40   SSerge Цитата(ohmjke @ Apr 2 2015, 20:12) Но мне... Apr 2 2015, 15:56 ViKo Возвращаясь к стартовому вопросу... У меня всё раб... Feb 8 2015, 17:39 SM Цитата(ViKo @ Feb 8 2015, 20:39) И я не п... Feb 8 2015, 17:41 ViKo Я же написал, что работает. В Keil. В Main вот так... Feb 8 2015, 17:59 SM Цитата(ViKo @ Feb 8 2015, 20:59) В Main в... Feb 8 2015, 18:00  ViKo Цитата(SM @ Feb 8 2015, 21:00) А вне Main... Feb 8 2015, 18:06
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|