Читать книгу Ссылки и указатели в C++: от основ к безопасности и современному коду - - Страница 109
Задача 14: Размер union
ОглавлениеВы должны написать программу, которая определяет и выводит размер в байтах объединения (union), содержащего как минимум два поля разного типа – например, один символ и одно целое число. Объединение устроено так, что все его члены разделяют одну и ту же область памяти, и его размер определяется наибольшим из размеров его членов с учётом выравнивания. Ваш код должен использовать оператор sizeof и вывести результат в формате "sizeof(U): X", где X – вычисленный размер.
Подсказка: объявите union с полями char и int, затем примените sizeof к типу этого объединения. Учтите, что на большинстве платформ размер int составляет 4 байта, а char – 1 байт, но из-за требований выравнивания объединение примет размер самого крупного элемента. Выведите результат с помощью std::cout, строго соблюдая указанный формат вывода.