Сообщение 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
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
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