C语言预定义跟踪调试,显示文件,行号__MODULE__,__LINE__

本文介绍了一个简单的调试打印函数实现,该函数使用宏定义来方便地输出带有文件名、行号及函数名的日志信息,适用于软件开发过程中的调试需求。

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

 输出函数

void debug_printf(const char *pstr, ...)
{
    va_list arglist; // 申请参数列表变量
    va_start(arglist, pstr);// 申明最后一个传递给函数的已知的固定参数
    vsnprintf((char  * )printfBuf, PRINTF_BUF_SIZE, (char  * )pstr, arglist);
    va_end(arglist);
    printf("%s", printfBuf);

}

 __MODULE__:显示文件名

__FUNCTION__:显示函数名

__DATE__当前日期,一个以 "MMM DD YYYY" 格式表示的字符常量。
__TIME__当前时间,一个以 "HH:MM:SS" 格式表示的字符常量。
__FILE__这会包含当前文件名,一个字符串常量。
__LINE__这会包含当前行号,一个十进制常量。
__STDC__当编译器以 ANSI 标准编译时,则定义为 1
#define DEBUG_TRACE()  debug_printf("%s(%d)%s()\r\n",  __MODULE__, __LINE__, __FUNCTION__)

#define DEBUG_WARNING(fmt, arg...) do {debug_printf("\r\n%s(%d)WARNING:"fmt, __MODULE__, __LINE__,##arg);}while(0)

#define DEBUG_ERROR(fmt, arg...) do {debug_printf("\r\n%s(%d)ERROR:"fmt, __MODULE__, __LINE__,##arg);}while(0)

#define DEBUG_MSG(fmt, arg...)  debug_printf("%s(%d):"fmt, __MODULE__, __LINE__, ##arg);

#define DEBUG_PRINTF(fmt, arg...)  debug_printf(fmt, ##arg)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值