//二进制位的奇偶交换
int main() {
int a = 10;
//得到偶数位 得到奇数位
int ret = ((a & 0xaaaaaaaa)>>1) + ((a & 0x55555555)<<1);
printf("%d\n", ret);
}
struct S
{
int a;
char b;
int c;
char d;
};
//成员相对于首地址的偏移
int main()
{
printf("%d\n", OFFSETOF(struct S, a));
printf("%d\n", OFFSETOF(struct S, b));
printf("%d\n", OFFSETOF(struct S, c));
printf("%d\n", OFFSETOF(struct S, d));
}
网友评论