Здравствуйте, kov_serg, Вы писали:
BFE>>Допустим у меня есть предзаказанный буфер длиною N и я хочу внутри него разместить несколько разных экземпляров разных структур. Как это сделать правильно?
BFE>> pBuffer->tail += sizeof(MyStruct); // _Alignof(MyStruct) ?
_>У вас размер структуры должен быть выравнен (paddings).
Зачем мне выравнивать размер структуры? Структуры разные и разного размера должны лежать в одном буфере. Выравнивать все по одному размеру — зря расходовать память.
_>Достаточно что бы начало вашего региона было выравнено.
разве?
_>А так можете вручную выравнивать если память линейная
Память линейная, но я не понимаю как это применять:
_>_>#define align(x,n) ((char*)(x)+(-(int)(char*)(x)&(n-1)))
_>