Ites to Bytes:Endianess是一个值得关注的问题?

时间:2010-09-14 16:03:46

标签: objective-c endianness

在这种情况下我是否必须担心字节顺序(整数必须是0-127):

    int a = 120;
    int b = 100;
    int c = 50;
    char theBytes[] = {a, b, c};

我认为,由于每个整数都位于自己的字节中,因此我不必担心在系统之间传递字节数组时的Endianess。这也是凭经验制定的。我错过了什么吗?

2 个答案:

答案 0 :(得分:6)

字节顺序仅影响单个值中的字节顺序。单个字节不受端序问题的影响,并且数组总是顺序的,因此字节数组在大端和小端架构上是相同的。

请注意,这并不一定意味着仅使用char将使数据类型100%可移植。例如,结构可能仍然包含依赖于体系结构的填充,并且一个系统可能具有未签名的char,而另一个系统使用签名(尽管我看到您通过仅允许0-127来回避这一点)。

答案 1 :(得分:3)

不,您不必担心,编译器会生成能够正确转换和赋值的代码。