Информация об изменениях

Сообщение Re[5]: Максимальный размер типа во время компиляции от 02.11.2015 8:22

Изменено 02.11.2015 8:29 uzhas

Здравствуйте, Alexander G, Вы писали:

AG>Здравствуйте, uzhas, Вы писали:


U>>уточните где вы увидели проблемы с выравниванием?


AG>Юнион вообще не выравнивается,

возможно, я не понял эту фразу, но union выравнивается под наибольший мембер, то бишь он правильно выравнен для доступа к любому полю
можно почитать в гугле: http://stackoverflow.com/questions/8625368/alignment-of-variable-in-union

AG> тогда как содержащиеся типы могут требовать выравнивание.

в наших примерах в union содержатся только массивы char, для которых требование к выравниванию равно 1

AG>Для гарантированного воспроизведения проблемы сделать, чтобы наибольший тип имел нечётный размер, и разместить два таких юниона подряд в структуре или массиве:

"нечетный размер" — это уже говорит о непонимании выравнивания. размер и требования на выравнивание — разные вещи. для char[N] требование на выравнивание равно 1
Re[5]: Максимальный размер типа во время компиляции
Здравствуйте, Alexander G, Вы писали:

AG>Здравствуйте, uzhas, Вы писали:


U>>уточните где вы увидели проблемы с выравниванием?


AG>Юнион вообще не выравнивается,

возможно, я не понял эту фразу, но union выравнивается под наибольший мембер, то бишь он правильно выравнен для доступа к любому полю
можно почитать в гугле: http://stackoverflow.com/questions/8625368/alignment-of-variable-in-union

AG> тогда как содержащиеся типы могут требовать выравнивание.

в наших примерах в union содержатся только массивы char, для которых требование к выравниванию равно 1

AG>Для гарантированного воспроизведения проблемы сделать, чтобы наибольший тип имел нечётный размер, и разместить два таких юниона подряд в структуре или массиве:

"нечетный размер" — это уже говорит о непонимании выравнивания. размер и требования на выравнивание — разные вещи. для char[N] требование на выравнивание равно 1

пример: http://ideone.com/WfuIDc