реклама на сайте
подробности

 
 
> Объявление структуры.
SasaVitebsk
сообщение May 3 2010, 19:22
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521



Столкнулся с интересной вещью. С чем-то подобным уже сталкивался, но в явном виде пока не встречал.

Компилятор IAR ARM 5.40.
Объявляю структуру. Мне надо чтобы структура была определённого размера, так как далее я работаю с указателеми и смещениями. Поэтому в конец я добавляю некоторые неиспользуемые поля. Структуру инициализирую.

==========
Если инициализировать структуру не полностью (то есть не все поля), то компилятор игнорирует поля, которые неинициализированы. При этом значение sizeof выдаётся по фактическому значению размера структуры. Ни ошибки, ни предупреждения компилятор при этом не выдаёт.

Вот не совсем понятно. Представим, что я просто ошибся и не проинициализировал последний элемент структуры и к нему нет прямого обращения .... и вот - нет ошибки, а компилятор этот элемент просто выкинет.
Где это описано? Как то в явном виде не встречал.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
SasaVitebsk
сообщение May 3 2010, 19:43
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521



Да, похоже я просто погорячился. На неполную инициализацию действительно компилятор не реагирует, а с sizeof - это всётаки, похоже, моя простая ошибка.
Так что извиняюсь.
laughing.gif
Go to the top of the page
 
+Quote Post
Methane
сообщение May 3 2010, 19:51
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 3 615
Регистрация: 12-01-09
Из: США, Главное разведовательное управление
Пользователь №: 43 230



Цитата(SasaVitebsk @ May 3 2010, 22:43) *
Да, похоже я просто погорячился. На неполную инициализацию действительно компилятор не реагирует, а с sizeof - это всётаки, похоже, моя простая ошибка.
Так что извиняюсь.
laughing.gif

Не понял. Поясните. sizeof структуры не обязан быть равен сумме полей структуры, особенно если оно не __packed___
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 12:06
Рейтинг@Mail.ru


Страница сгенерированна за 0.01371 секунд с 7
ELECTRONIX ©2004-2016