对于小端和大端?
如果它们在一个数组中怎么办?也安全吗?
这与字节顺序无关。
正如您在此处看到的,char 几乎可以肯定是 8 位的,因此将其转换为整数在任何意义上都是安全的。
然而,将 int 转换为 double 并非如此。例如,数字 2^63 - 10 不能用 64 位双精度数精确表示。阅读每位计算机科学家应了解的浮点运算知识。在这里,强制转换会导致数字被截断,从而导致精度损失。
幸运的是,所有 32 位整数都可以毫无损失地转换,所以如果你的整数是 32 位长,那就很好。
是的,只要您键入转换常规 C 变量,它是安全的。
如果您要更改或移动构成这些变量的原始字节,您只需要担心字节序。