【发布时间】:2014-07-16 06:04:42
【问题描述】:
我有一个存储为 16 字节字符数组的 IPv6 地址。 uchar ip6[16]; 我必须检查它是多播地址还是单播地址。已知的方法是检查第一个字节,如果其值为“FF”,则意味着它是多播地址。现在我想知道字节序是否会影响字符数组的存储。
【问题讨论】:
-
我们必须查看代码。很可能,没有。但你永远不知道。字符数组可能包含主机字节顺序的地址。
-
没有。
char不受字节序的影响,就像sizeof(char) == 1在任何平台上一样。 -
@barakmanos
char j[4]; int32_t i=1; memcpy(&j, &i, 4);-- 仍然认为该字符数组的内容不依赖于字节序? -
@DavidSchwartz:不,但您已将
int i添加到“等式”中。 OP 在他/她的问题中声明uchar ip6[16]!!! -
@barakmanos 我有
char j[4];。也可以是uchar ip6[16]。答案完全取决于他的数组是如何填充的。 (OP 没有说明他的数组是如何填充的,这是我们需要知道的。我们不知道 OP 的等式中还有什么。)
标签: arrays char endianness