Тип punning vs Доступ члена Союза

В соответствии с этим https://stackoverflow.com/a/1812932/1814023, writing one member of union and reading another member is undefined behavior.

И в соответствии с этим https://stackoverflow.com/a/11640603/1814023 type punning is allowed in C99 / C11

Я немного запутался в этих двух постах, какой из них правильный? Нужна помощь в понимании типа punning Vs, обращаясь к члену профсоюза.

Благодарю.

Он определен в C89:

C89 3.3.2.3 Состав и члены профсоюза

За одним исключением, если член объекта union обращается после того, как значение было сохранено в другом члене объекта, поведение определяется реализацией. Одна специальная гарантия делается для упрощения использования профсоюзов: если union содержит несколько структур, которые имеют общую начальную последовательность, и если объект union настоящее время содержит одну из этих структур, разрешается проверять общую начальную часть любого из них. Две структуры имеют общую начальную последовательность, если соответствующие члены имеют совместимые типы для последовательности одного или нескольких начальных членов.

В C99 / C11 это разрешено, хотя, когда это ловушка , значение неопределенно.

C11 6.5.2.3 Сноска структуры и членов профсоюза

Если элемент, используемый для чтения содержимого объекта union не совпадает с элементом, используемым последним для хранения значения в объекте, соответствующая часть представления объекта значения переинтерпретируется как представление объекта в новом типе как описанный в 6.2.6 (процесс, иногда называемый «type punning»). Это может быть ловушечное представление.