0

1) バッファが大きい 2) ほぼすべての型の変数がたくさんある

このバッファを使用して、異なるバイト順で複数の宛先に送信します。

ネットワーク バイト オーダーに送信するときは、通常、htons、または htonl と特定のデータ型用にカスタマイズされた関数を使用しました。

だから私の問題、

バッファーを作成するたびに、各変数のバイト順を変更してから memcpy を使用します。

ただし、特定の意図したバイト順序で効率的な memcpy を望んでいたように、より良い方法を知っている人はいますか

例、

UINT32 dwordData = 0x01234567;
UINT32 dwordTmp = htonl(dwordData);
memcpy(&buffer[loc], &dwordTmp, sizeof(UNIT32));
loc += sizeof(UNIT32);

これは私がランダムに書いた単なる例です。

次のような関数を期待しています

memcpyToNetwork(&buffer[loc], &dwordTmp, sizeof(UNIT32));

あなたが私が何を意味するか知っているなら、命名は単なる説明であり、データ型に応じて特定のデータ型のバイト順を行うので、手動で順序を変更し続ける必要はなく、コピー先の一時変数を持つ必要がなく、コピーを2回節約できます.

4

1 に答える 1