首页 > 代码库 > C-宏
C-宏
可变参数宏
__VA_ARGS__:总体来说就是将左边宏中 ... 的内容原样抄写在右边 __VA_ARGS__ 所在的位置
也就是说
define debug(a,b,c... ) printf(a,b,c,__VA_ARGS_)
等于是对于不确定有多少的变量都可以先明确调用
#define test(format, ...) fprintf (stderr, format, __VA_ARGS__)
main()
{
char p[] ="it is:"
test("%s %d", p[], num);
return 0;
}
c库中的特殊宏
__FILE__,编译时定义为当前的文件名
__LINE__ ,编译时定义为当前的行数
__FUNCTION__编译时定义为当前的函数名
printf(“ %s \n”,__FUNCTIOM__)
就可以打印出来当前的函数名 对于调试很有作用
## 连接符
#define A abc##def
A ==> abcdef
#替代符
# stringified 把字符# 右边的 宏参数 转换为字符串 "argument"
等于把参数字符串化
example:
#define str(a) #a
str(ADD(x)) ==> "ADD(x)"
C-宏
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。