一、定义一个常量符号
#define Max 100
int main()
{
int a = Max;
printf("%d", a);
return 0;
}
此处 Max 相当于一个常量
二、定义一个宏
#define ADD(x,y) ((x)+(y))
int main()
{
int sum = ADD(2, 4);
printf("%d", sum);
return 0;
}
定义一个宏----加法 ADD:
写一个宏,交换奇偶数
#define Jiaohuanjiou(x)(((x*0x55555555)<<1)||((x*0xaaaaaaaa)>>1))
实现过程
int main()
{
int x = 5;
printf("%d\n", Jiaohuanjiou(x));
system("pause");
return 0;
}
写一些宏,计算结构体中变量相对于首地址的偏移量 — offsetof
#define offsetof(StructType, MemberName) (size_t)&(((StructType *)0)->MemberName)
- StructType ----> 结构体名
- MemberName ----> 结构体成员
实现过程
typedef struct node_s
{
int num;
char m[64];
double c;
float d;
}node_t;
int main()
{
printf("%d\n", offsetof(node_t, c));
system("pause");
return 0;
}