![]() |
Модераторы: Daevaorn |
![]() ![]() ![]() |
|
LeonidPr |
|
||||||||
Бывалый ![]() Профиль Группа: Участник Сообщений: 220 Регистрация: 17.2.2012 Где: г. Чебоксары Репутация: нет Всего: 1 |
Добрый день всем. Возник такой вопрос.
есть вот такие типы
где set_type_t это просто перечисление. Теперь мне нужно создать переменную типа map_item_t и проинициализировать её при объявлении.
Компилятор ругается, что i_min_value, i_max_value не определены. Если писать по другому
то все компилируется, но... я хотел бы явно указывать какие поля union я инициализирую. Причем компилируется и такой вариант:
Могу ли я быть уверен, что компилятор не приведет 0.5f к uint32_t например и не получит 0? и второй вопрос, почему явное указание полей не работает, хотя структуры внутри union анонимные, вроде как должен такой синтаксис работать. Это сообщение отредактировал(а) LeonidPr - 13.10.2015, 14:12 --------------------
pkunzip.zip |
||||||||
|
|||||||||
volatile |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2107 Регистрация: 7.1.2011 Репутация: 37 Всего: 85 |
||||
|
||||
feodorv |
|
||||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2214 Регистрация: 30.7.2011 Репутация: 11 Всего: 45 |
Как-то это иначе делается, например.
По умолчанию инициализируется первый член объединения. Проведите эксперимент:
Получите нули, как и должно быть. Добавлено через 49 секунд Пока писал ответ, не видел ответа volatile))) -------------------- Напильник, велосипед, грабли и костыли - основные инструменты программиста... |
||||||
|
|||||||
volatile |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2107 Регистрация: 7.1.2011 Репутация: 37 Всего: 85 |
||||
|
||||
LeonidPr |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 220 Регистрация: 17.2.2012 Где: г. Чебоксары Репутация: нет Всего: 1 |
да, Volatile, действительно ваш вариант работает и с IAR компилятором. Спасибо! Сейчас буду искать, как это объясняется с точки зрения стандарта. Похоже, что как-бы резервируется место под mi_range и потом идет обращение к полям уже созданной структуры. Так-то вроде понятно, но я вряд ли бы в ближайшее время дошел до такого варианта!
--------------------
pkunzip.zip |
|||
|
||||
volatile |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2107 Регистрация: 7.1.2011 Репутация: 37 Всего: 85 |
|
|||
|
||||
LeonidPr |
|
||||
Бывалый ![]() Профиль Группа: Участник Сообщений: 220 Регистрация: 17.2.2012 Где: г. Чебоксары Репутация: нет Всего: 1 |
да, то же нашел. Только вот думал, откуда я вариант с двоеточиями взял, в голове сидит ведь. Сейчас вот нашел
Designated inits
Устаревший оказывается. --------------------
pkunzip.zip |
||||
|
|||||
![]() ![]() ![]() |
Правила форума "С++:Общие вопросы" | |
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |