对不起,如果标题有点混乱,这里有一个完整的解释:
假设我有以下结构:
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 ...
非常感谢您提供解释和/或参考阅读的答案。