Профсоюзы ANSI C - они действительно полезны?

Из ответа на вчерашний вопрос я узнал, что непереносимо и небезопасно записывать в один член объединения и считайте значение из другого члена другого типа, предполагая базовое выравнивание членов. Поэтому после некоторого исследования я нашел письменный источник, который повторяет это утверждение и указывает на популярный пример - использование объединения int и float для нахождения двоичного представления с плавающей точкой.

Итак, понимая, что это предположение небезопасно, мне интересно - кроме как экономить память (дух ...), что реальное использование для союзов?

Примечание: то есть в соответствии со стандартом С. Очевидно, что для конкретной реализации правила известны заранее и могут быть использованы в своих интересах.

РЕДАКТИРОВАТЬ: слово «небезопасно», из-за ассоциации последних лет, вероятно, является неправильным выбором формулировки, но я думаю, что намерение ясно.

РЕДАКТИРОВАТЬ 2: Поскольку этот пункт повторяется в ответах - сохранение памяти является допустимым аргументом. Я хотел знать, было ли что-то помимо этого.

6
задан timrau 15 August 2012 в 17:07
поделиться