自己使用DEBUG宏经历

本文介绍了在C语言中使用DEBUG宏进行调试的一些实践经验,包括DBGA、DBGD、DBGC和DBGB四个宏定义,分别展示了如何打印变量、函数名以及字符串等内容。通过实例展示了带#和##运算符的宏如何工作,并分析了它们在打印输出时的不同效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

(本文是自己在学习是总结的自己所用到的几点知识,仅仅用作自己学习笔记使用,以后若有需要会更新)

#define DBGA(fmt, args...) printf(fmt"\n", #args);
#define DBGD(fmt, args...) printf("%s"fmt"\n",__FUNCTION__, #args);
#define DBGC(fmt, args...) printf(fmt"\n", ##args);
#define DBGB(fmt, args...) printf("[%s]: hello"fmt"\n", __FUNCTION__, #args);


int main(void)

{

char str[] = "helloeveryone";

DBGA("%s", "hello", __FUNCTION__, dbga, str);
DBGD("%s", "hello", __FUNCTION__, dbgd, str);
DBGC("[%s]: %s, %s", __FUNCTION__, "dbgc", str);    //此处是带##的
DBGB("%s", __FUNCTION__, dbgb);

}


打印结果:

"hello", __FUNCTION__, dbga, str
main"hello", __FUNCTION__, dbgd, str
[main]: dbgc, helloeveryone
[main]: hello__FUNCTION__, dbgb

可以看出,带#的基本上是按照字符替换来打印的(__FUNCTION__就没有打印出函数名称称),如果想打印还数名称的话,可以在宏定义的时候加入__FUNCTION__

我觉得用##还是比较好些

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值