1.声明一个常数用以表示1年中有多少秒(忽略闰年问题)
#define SECONDS_PER_YEAR (60*60*24*365)UL
2.返回两个数的较大数(不能使用大于、小于、if语句)
#define MAX(a, b) ((abs((a)-(b)))==((a)-(b))?(a):(b))
3.返回两个数的较小数
#define MIN(a, b) ((a)<(b)?(a):(b))
4.在宏中把参数解释为字符串
#define TRACE(S) printf("%s\n", #S)
5.不使用sizeof求int占用的字节数
#define MY_SIZEOF(value) ((char *)(&value+1)-(char *)&value)
6.用sizeof求数组中元素的个数
#define COUNT(array) (sizeof(array)/sizeof(array[0]))
7.求一个结构体A里某个变量相对A的偏移量
#define FIND(struct_, member) (unsigned int)&(((struct_ *)0)->member)
一些宏的写法
最新推荐文章于 2023-06-11 21:53:15 发布