C语言常用的宏定义

1 特殊的宏

C几种特殊标准定义

__FILE__ :文件名, 用%s接收
__LINE__ :行号,用%d接收
__FUNC__ : 函数名, 用%s接收
__DATE__:编译时刻的日期字符串,%s接收
__TIME__:编译时刻的时间字符串,%s接收
__STDC__:判断该文件是不是标准C程序
#ifdef __STDC__
printf('标准C代码文件\n');
#else
printf('非标准C代码文件\n');
#endif
2 求最大值和最小值
#define MIN(a, b) ((a) < (b) ? (a) : (b))	//得到最小值
#define MAX(a, b) ((a) < (b) ? (b) : (a))	//得到最大值
3 求数组长度
#define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0]))
4 拼接两个参数
#define CONCAT_2(p1, p2)      CONCAT_2_(p1, p2)
#define CONCAT_2_(p1, p2)     p1##p2
5 可变参数取值
//获得第一个元素
#define GET_VA_ARG_1(...) GET_VA_ARG_1_(__VA_ARGS__, ) 
#define GET_VA_ARG_1_(a1, ...) a1

//获得除了第一个元素外的其他元素
#define GET_ARGS_AFTER_1(...) GET_ARGS_AFTER_1_(__VA_ARGS__, ) 
#define GET_ARGS_AFTER_1_(a1, ...) __VA_ARGS__

6 设置一个字的某一个比特
//将一个字W的第B个bit置位
#define SET_BIT(W, B)  ((W) |= (uint32_t)(1U << (B)))

//将一个字W的第B个bit清空
#define CLR_BIT(W, B) ((W) &= (~(uint32_t)(1U << (B))))

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值