Столкнулся с интересной вещью. С чем-то подобным уже сталкивался, но в явном виде пока не встречал.
Компилятор IAR ARM 5.40. Объявляю структуру. Мне надо чтобы структура была определённого размера, так как далее я работаю с указателеми и смещениями. Поэтому в конец я добавляю некоторые неиспользуемые поля. Структуру инициализирую.
========== Если инициализировать структуру не полностью (то есть не все поля), то компилятор игнорирует поля, которые неинициализированы. При этом значение sizeof выдаётся по фактическому значению размера структуры. Ни ошибки, ни предупреждения компилятор при этом не выдаёт.
Вот не совсем понятно. Представим, что я просто ошибся и не проинициализировал последний элемент структуры и к нему нет прямого обращения .... и вот - нет ошибки, а компилятор этот элемент просто выкинет. Где это описано? Как то в явном виде не встречал.
|