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回節約できます.