Я искал какое-то время, но не могу найти четкого ответа.
Многие говорят, что использование профсоюзов для типа "каламбура" - это undefined и плохая практика. Почему это? Я не вижу причин, по которым он мог бы что-либо сделать undefined, учитывая, что память, которую вы пишете исходной информацией, не будет просто изменяться по собственному желанию (если она не выходит за рамки в стеке, но это не проблема с профсоюзом, это будет плохой дизайн).
Люди цитируют строжайшее правило псевдонимов, но мне кажется, что я не могу этого сделать, потому что вы не можете этого сделать.
И какой смысл союза, если не набирать каламбуры? Я где-то видел, что они должны использоваться для использования одного и того же места памяти для различной информации в разное время, но почему бы просто не удалить информацию перед ее повторным использованием?
Подводя итог:
- Почему плохо использовать союзы для типа punning?
- Что это за точка, если это не так?
Дополнительная информация: Я использую в основном С++, но хотел бы знать об этом и C. В частности, я использую объединения для преобразования между поплавками и шестнадцатеричным шестым для отправки через CAN-шину.