可变参数宏
2016-04-11 18:31
155 查看
#define debug(format, ...) fprintf(stderr, format, ##__VA_ARGS__)
... 指可变参数。这类宏在被调用时,它(这里指‘…')被表示成零个或多个符号,包括里面的逗号,一直到到右括弧结束为止。当被调用时,在宏体(macro body)中,那些符号序列集合将代替里面的__VA_ARGS__标识符。当零个参数时,##会把前面多余的逗号去掉。
eg:
__FILE__ 代表当前文件名
__LINE__ 当前行
... 指可变参数。这类宏在被调用时,它(这里指‘…')被表示成零个或多个符号,包括里面的逗号,一直到到右括弧结束为止。当被调用时,在宏体(macro body)中,那些符号序列集合将代替里面的__VA_ARGS__标识符。当零个参数时,##会把前面多余的逗号去掉。
eg:
int main() { debug("a = %d", 10); //扩展为fprintf(stderr, "a = %d", 10); debug("good"); //扩展为fprintf(stderr, "good"); return 0; }
__FILE__ 代表当前文件名
__LINE__ 当前行
相关文章推荐
- c++unique用法
- Log4J日志组件
- Delphi Android程序启动过程
- MVC基本学习
- 大数据系列文章汇总 - 更新到15篇
- Android Studio与Genymotion模拟器结合使用的一些心得
- Android studio 调试时,出现错误闪退,但是控制台没有打印错误信息
- 注解
- 关于Delphi XE2的FMX的一点点研究之消息篇
- VS2013MFC对话框工程学习笔记二 - 了结布局和一些基本的窗口组件
- 什么函数不能申明为虚函数的问题
- UIImagePikerController 浅析
- CMP SUB 区别
- Linux下time函数
- 简单问题藏着大陷阱
- Android屏幕适配
- 内嵌数组更新
- ife-task0001暂存
- lightoj 1016 - Brush (II) 贪心
- 视图与暂时表