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 に答える