ночью писал, забыл один аргументик
E>E>текущее_смещение_поля = 0;
E>текущее_выравнивание_структуры = 1;
E>foreach( поля ) {
E> текущее_выравнивание_структуры = max( текущее_выравнивание_структуры, align( текущее_поле ) );
E> текущее_смещение_поля = округлить_вверх( текущее_смещение_поля, align( текущее_поле ) );
E> разместить( текущее_поле, текущее_смещение_поля );
E> текущее_смещение_поля += sizeof( текущее_поле );
E>}
E>размер_структуры = max( округлить_вверх( текущее_смещение_поля, текущее_выравнивание_структуры ), 1 );
E>выравнивание_структуры = текущее_выравнивание_структуры;
E>
приношу извинения.
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском