ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Вторник
2 июля
462387
UraGun (11.11.2013 21:08 - 21:12, просмотров: 24418)
Нашел интересную фичу, спецэффект так сказать, хочу посоветоваться с экспертами. Пользую IAR. В проекте несколько файлов, есть структура, объявленная в одном из файлов, там же объявлен массив этих структур. Например struct { uint8 a1, uint8 a2, uint8 a3, uint8 a4, } node[255]; если в другом файле объявить extern struct { uint16 b1, uint16 b2, } node[255]; IAR не ругается, и нормально отрабатывает манипуляции с b1, как с числом, имеющим значение a2*256+a1. Вопрос. Насколько законно юзать такой механизм ? Или отсутствие ошибки при компиляции только частный случай ? Спрашиваю не из праздного интереса, есть необходимость юзать один и тот же кусок памяти, обзывая его вот таким вот как приведено образом. Т.е. чтобы в случае необходимости можно было считать, что в этом куске памяти либо одна структура, либо другая. Принципиально не хочу юзать new-delete и прочие операции с кучей, потому как дефрагментация процесс непредсказуемый. Хочу просто объявить несколько разных переменых на одном клочке физической памяти. Как элегантнее ?