C语言 如何将结构体成员存储为大端序



我有一个类似于以下内容的struct

typedef struct _pair_t{
    uint16_t    keylen;     // 2
    uint32_t    vallen;     // 4
} __attribute__((__packed__)) pair_t;

我将使用 mmap 从文件中读取,因此我想将数字存储为大端序。

我需要做htobe16/betoh16还是有一些__attribute__可以为我做到这一点?

你需要使用 htobe16 或 htons 或类似的东西。 在大多数编译器中,无法将变量声明为具有不同的字节序。

我知道一个(付费的,商业的)编译器有一个开关,可以将整个程序变成"相反"的字节序,但这不是你想要的,我相信你不想为此付费。

最新更新