【发布时间】:2016-10-05 07:36:04
【问题描述】:
如果我们用 8 位指针写入 4 次 1B 的 char,然后用 32 位指针读取 4B,会发生什么?为什么不建议这样做,会发生什么情况?
【问题讨论】:
-
结果将取决于系统的endianness。因此它不是可移植的代码。
-
严格别名不适用,因为您始终可以别名为 8 位指针。
-
@unwind 也许stackoverflow.com/questions/23848188/… 是一个更好的副本
-
@doron 不是
CHAR_BIT > 8。 -
@doron 您可以从pointer-to-x 转换为pointer-to-char,但不能反过来。所以严格的别名确实适用,假设“8位指针”是一个字符类型。