写一个宏,可以将一个整数的二进制位的奇数位和偶数位交换
#define _CRT_SECURE_NO_WARNINGS 1
#include<windows.h>
#include<stdio.h>
#define JIAOHUAN(n)(((n&(0x55555555))<<1) | ((n&(0xAAAAAAAA))>>1))
//n的奇数位左移一位,偶数位右移一位
int main()
{
int n;
scanf("%d", &n);
printf("%d\n", JIAOHUAN(n));
system("pause");
return 0;
}
写一个宏,计算结构体中某变量相对于首地址的偏移,并给出说明
#define OFFSET(id, element) ((unsigned int)(&(( struct id*)0)->element))