我已经搜索了一段时间,但找不到明确的答案。很多人说使用union来键入双关是未定义且不好的做法。为什么是这样?考虑到您将原始信息写入的内存不会自行更改(除非它超出堆栈范围,但这不是union问题,我看不出它为什么会做任何未定义的事情的任何理由,那将是糟糕的设计)。人们引用严格的别名规则,但在我看来,这就像说你不能这样做,因为你不能这样做。如果不输入双关语,union还有什么意义?我在某处看到它们应该用于在不同时间将相同的内存位置用于不同的信息,但为什么不在再次使用之前删除信息?总结一下:为什么使用union来进行类型双关是不好的?如果不是这个,它们还有什么意义?额外信息:我主要使用C+