Arrays endianness是否影响字符数组中的值?

Arrays endianness是否影响字符数组中的值?,arrays,char,endianness,Arrays,Char,Endianness,我将IPv6地址存储为16字节字符数组。 uchar ip6[16]; 我必须检查它是多播地址还是单播地址。已知的方法是检查第一个字节,如果该字节的值为“FF”,则表示它是一个多播地址。现在我想知道endianness是否会影响字符数组的存储。不,它不会。您描述的代码从不将地址转换为主机字节顺序。因此主机的字节顺序不会影响数组的内容。我们必须查看代码。很有可能,不,但你永远不知道。字符数组可能包含主机字节顺序的地址。否char不受Endianness的影响,因为在任何平台上,sizeof(cha

我将IPv6地址存储为16字节字符数组。 uchar ip6[16];
我必须检查它是多播地址还是单播地址。已知的方法是检查第一个字节,如果该字节的值为“FF”,则表示它是一个多播地址。现在我想知道endianness是否会影响字符数组的存储。

不,它不会。您描述的代码从不将地址转换为主机字节顺序。因此主机的字节顺序不会影响数组的内容。

我们必须查看代码。很有可能,不,但你永远不知道。字符数组可能包含主机字节顺序的地址。否
char
不受Endianness的影响,因为在任何平台上,
sizeof(char)==1
。@barakmanos
char j[4];int32_t i=1;memcpy(j&i,4)--仍然认为该字符数组的内容不依赖于endianness吗?@DavidSchwartz:不,但您已将
int i
“添加到等式中”。OP在其问题中陈述了
uchar ip6[16]
@barakmanos我有
charj[4]在我的。它也可以是
uchar ip6[16]
。答案完全取决于数组的填充方式。(OP没有说明他的数组是如何填充的,这是我们需要知道的。我们不知道OP方程中还有什么。)