0

我有一个struct类似的:

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

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

我需要这样做htobe16/betoh16或者有一些__attribute__可以为我做这件事吗?

4

1 回答 1

5

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

我知道一个(付费的,商业的)编译器有一个开关可以把整个程序变成“相反的”字节序,但这不是你想要的,我敢肯定你不想为此付费.

于 2015-01-07T07:33:31.717 回答