您的位置:首页 > 编程语言 > C语言/C++

C++11新特性学习笔记—变长参数的宏定义以及__VA_ARGS__

2017-11-03 10:03 357 查看
在C99标准中,我们就已经可以使用变长参数的宏定义。变长参数的宏定义是啥??就是在宏定义的参数列表的最后一个参数为省略号。而现在C++ 11 中,可以使用预定义宏__VA_ARGS__可以在宏定义的实现部分替换省略号所代表的字符串。

     EX:

     #include <stdio.h>

//定义LOG宏来记录代码位置中一些信息,程序员可以根据stderr产生的日志追索到代码中产生
//这些记录的位置。引入这样的特性,对于轻量级调试,简单的错误输出都是有积极意义的
#define LOG(...) {\
fprintf(stderr,"%s:line %d:\t",__FILE__,__LINE__);\
fprintf(stderr,__VA_ARGS__);\
fprintf(stderr,"\n");\
}

int main()
{
int x = 3;
LOG("x = %d",x);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐