struct
複数の32ビット要素で構成されるがあります。を適用した#pragma pack (4)
ので、次の構造体は線形で整列されています。
struct
{
int a; // 4 bytes
int b; // 4 bytes
int c; // 4 bytes
} mystruct; // total 16 bytes
これらの各要素を交換するにはどうすればよいですか(リトル->ビッグエンディアン)?
メソッドはvoid swap(void* a, int b);
、a
構造体へのポインタを持ち、b
整数は構造体のサイズを示します。
例えば :
void swap(void* a, int b)
{
//FIXME !
for (int i = 0; i < b; i+= 32)
{
a = (a & 0x0000FFFF) << 16 | (a & 0xFFFF0000) >> 16;
a = (a & 0x00FF00FF) << 8 | (a & 0xFF00FF00) >> 8;
a += 32;
}
}