我有一个类似于:
typedef struct _pair_t{
uint16_t keylen; // 2
uint32_t vallen; // 4
} __attribute__((__packed__)) pair_t;
我将使用
struct
从文件中读取,因此我想将数字存储为big endian。我需要做的是
mmap
/htobe16
还是有些betoh16
可以帮我做? 最佳答案
您需要使用htobe16或htons或类似的。在大多数编译器中,无法将变量声明为具有不同的endianness。
我知道有一个(付费的,商业的)编译器,它有一个开关,把整个程序变成“相反的”端,但那不是你想要的,我相信你不想为此付出代价。
关于c - 如何将结构成员存储为大端,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27814353/