タイトルが少しわかりにくい場合は申し訳ありませんが、完全な説明は次のとおりです。
次の構造があるとします。
union data {
struct{
uint32_t h : 16;
uint32_t p : 16;
};
uint32_t f;
};
および次のコード:
struct data d;
d.f = 0xbaadf00d;
printf("%d %d\n", d.h, d.p);
私の質問は次のとおりです。ビット単位の操作を使用してこれを行う同等の方法はありますか? 何かのようなもの:
uint32_t u32 = 0xbaadf00d;
uint32_t h = u32 ... some hacks ...
uint32_t p = u32 ... some more hacks ...
説明および/または参照を読んで回答をいただければ幸いです。