在C中将char从big endian转换为little endian

P M*_*P M 2 c char endianness

我正在尝试将char变量从big endian转换为little endian.

这正是:

char name[12];
Run Code Online (Sandbox Code Playgroud)

我知道如何在大端和小端之间转换int,但是char会让我搞砸.

我知道我必须首先将它转换为整数形式,我有.

对于转换int,这是我使用的:

(item.age >> 24) | ((item.age >> 8) & 0x0000ff00) | ((item.age << 8) & 0x00ff0000) | (item.age << 24);
Run Code Online (Sandbox Code Playgroud)

对于转换char,如果可能的话,我想以同样的方式进行,只是因为这是我理解的唯一方法.

Ser*_* L. 9

Endianess仅影响字节顺序.由于char只是一个字节,所以在所有endianess格式上都是相同的.

并且作为注释:您可能想要在libc中查找endianess转换函数:

htonl, htons
ntohl, ntohs
Run Code Online (Sandbox Code Playgroud)