ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Суббота
4 мая
1392242 Топик полностью
AlexBi (12.01.2024 09:13, просмотров: 69) ответил SciFi на Тут совсем недавно обсуждали sizeof_struct_member(). Есть ещё offsetof(). А больше ничего и не нужно, чтобы навести необходимую адресную арифметику.
Раньше так делал, работает, но не так удобно, надо все сводить в один файл, в котором будет куча записей типа 
#define address_of_var2 ALIGN2(address_of_var1+sizeof(var1))
#define address_of_var3 ALIGN2(address_of_var2+sizeof(var2))

В один файл сводить что бы ни чего не забыть и не перепутать.

Адрес элемента переменной простым &var2.fld1 или &var2.fld2[n] уже не получится, придется что-то типа (address_of_var2+offsetof(type_var2,fld1)) или

(address_of_var2+offsetof(type_var2,fld2)+sizeof(type_var2,fld2[0])*n) Т.е. не так наглядно, проще ошибиться.