宏定义DEBUG()代替printf()
来源:互联网 发布:淘宝开店申请要多久 编辑:程序博客网 时间:2024/06/05 08:53
今天看到这样一段代码,值摘取其中宏定义的部分,如下:
#define DEBUG(fmt,args...) printf("%s(%d)-%s -> " #fmt "\n", __FILE__, __LINE__, __FUNCTION__, ##args);
相信很多初入编程界的新人朋友们(我也是新人,汗。。。),看到这就会有疑问:
1.fmt及#fmt是什么? 2.##args是什么?
在此对这些问题做一个容易理解的解释:
1.fmt就是宏定义的第一个参数,在代码中展开时直接代入,需注意的是#fmt的意思为把fmt传进来的内容以字符串形式输出。
2.args..代表一个可变化的参数表,##args如果前面的可变参数被忽略或为空,“##”操作将使预处理器去除掉它前面的那个逗号。如果你在宏调用时,确实提供了一些可变参数,它会把这些可变参数放到逗号后面。
#include <stdio.h>
#include <stdlib.h>
#define DEBUG_PRINT(fmt,args...) printf("%s(%d)-%s -> " #fmt "\n", __FILE__, __LINE__, __FUNCTION__, ##args);
void main(void)
{
char a = 'T', b = 'e', c = 's', d = 't';
DEBUG_PRINT(%c%c%c%c,a,b,c,d);
}
阅读全文
0 0
- 宏定义DEBUG()代替printf()
- 用宏定义代替printf函数
- C51用宏定义代替printf函数
- DEBUG() __FILE__,__LINE__ 代替 printf
- printf的宏定义
- printf宏定义
- printf宏定义
- printf debug
- 关于inline---代替宏定义
- 宏定义DeBug
- debug的宏定义
- 宏定义debug代码
- printf 的宏定义版本
- printf 的宏定义版本
- printf 的宏定义版本
- 宏定义变参printf
- printf 的宏定义版本
- printf 的宏定义版本
- 【Android】【学习笔记】运行时资源替换-Runtime Resource Overlay 学习实践
- 基于随机森林的Shadowsocks流量检测
- R主成份分析
- Flent的使用及遇到的问题汇总
- linux mount命令的用法详细解析
- 宏定义DEBUG()代替printf()
- 如果编码不是为了好玩那将毫无意义
- 463. Island Perimeter
- 32位进程在64位系统中的文件重定向
- python查漏补缺一
- Android移动开发-使用HttpURLConnection实现多线程的下载
- MapReduce编程-join算法实现
- 网络设备流量及性能监控的实现
- vue中简单的无限树形结构tree.vue