对于小端和大端?
如果他们在阵列中怎么办?它也安全吗?
答案 0 :(得分:3)
这与Endianness无关。
正如你所看到的here,char几乎可以肯定是8位,所以将它转换为整数在各个方面都是安全的。
然而,将int转换为double是不行的。例如,数字2 ^ 63-10不能精确地以64位双精度表示。阅读What Every Computer Scientist Should Know About Floating-Point Arithmetic.这里,强制转换将导致数字被截断,从而导致精确丢失。
幸运的是,所有32位的整数都可以毫无损失地进行投放,所以如果你的整数是32位,你就会很好。
答案 1 :(得分:2)
是的,只要您输入常规C变量,就很安全。
如果要改变或移动构成这些变量的原始字节,则只需要担心字节序。