ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Воскресенье
5 мая
1391685 Топик полностью
Nikolay_Po (10.01.2024 20:32, просмотров: 111) ответил Argon на А подскажите как compile-time получить размер элемента структуры? Язык - C, компилятор xc8, С99.
Когда я мучился с XC8 (2013..2019 годы, примерно), то, вроде, делал такой ужас (требуется определение структуры): 
tSomeStruct t;
uint8_t Size1 = (uint8_t*)t.element2-(uint8_t*)t.element1;
uint8_t Size2 = (uint8_t*)t.element3-(uint8_t*)t.element2;
uint8_t Size3 = (uint8_t*)(&t)[1]-(uint8_t*)t.element3;

Разумеется такое не работает для битовых полей меньше байта.

В работе, вроде, не раздувало код и не занимало ОЗУ по сравнению с жёстко закодированными размерами, если включить оптимизацию.