C 中是否有一种可移植的方式来在编译时找出位字段的掩码?
理想情况下,我希望能够以原子方式清除这样的字段:
struct Reference {
unsigned age : 3;
unsigned marked : 1;
unsigned references : 4;
};
struct Reference myRef;
__sync_and_and_fetch(&myRef, age, ~AGE_MASK);
否则我必须对结构进行锁定,这比我想要的要重。