C语言-调试程序的可变参数宏

本文介绍了如何利用宏定义DEBUG_PRINT在C程序中实现调试信息的有条件输出。通过定义__DEBUG__宏,可以在开发阶段使用printf输出调试信息,完成后移除宏即可关闭调试输出。示例代码展示了如何定义和使用可变参数宏来适应printf函数的使用场景。
摘要由CSDN通过智能技术生成

By: Ailson Jack
Date: 2021.10.29
个人博客:http://www.only2fire.com/
本文在我博客的地址是:http://www.only2fire.com/archives/140.html,排版更好,便于学习,也可以去我博客逛逛,兴许有你想要的内容呢。

在程序的开发和调试过程中,可以使用一个宏定义来代替printf输出调试信息,等程序开发完成之后,如果不需要调试信息,直接将宏定义为空就行,这样便于随时打开和关闭调试信息。这样的调试程序的宏一般是可变参数宏,因为打印函数printf是可变参数的,因此定义的宏也要求支持可变参数。

可变参数宏可以接受可变数目的参数,就像可变参数的函数一样。可变参数宏也使用三个点(…)来表示宏的可变参数性。

__VA_ARGS__ 宏是用来表示可变参数宏的可变参数的内容。简单的说就是将可变参数宏中的 … 的内容原样传递给右边 __VA_ARGS__ 所在的位置。示例代码如下:

/**
 * @file test.c
 * @author Ailson Jack (jackailson@foxmail.com)
 *         blog: www.only2fire.com
 * @brief
 * @version 1.0
 * @date 2021-10-29
 *
 * @copyright Copyright (c) 2021
 *
 */

#include <stdio.h>

#define __DEBUG__

// 调试程序的可变参数宏定义
#ifdef __DEBUG__
    #define DEBUG_PRINT(...)    printf(__VA_ARGS__)
#else
    #define DEBUG_PRINT(...)
#endif

int main(void)
{
    char *name = "Ailson Jack";
    int age = 18;

    DEBUG_PRINT("name:%s age:%d\r\n", name, age);
    DEBUG_PRINT("blog: www.only2fire.com");

    return 0;
}

通过屏蔽或打开程序中的 __DEBUG__ 宏,可以让调试信息输出或者不输出。

欢迎关注博主的公众号呀:

在这里插入图片描述
如果文中有什么问题欢迎指正,毕竟博主的水平有限。

如果这篇文章对你有帮助,记得点赞和关注博主就行了^_^。

排版更好的内容见我博客的地址:http://www.only2fire.com/archives/140.html

注:转载请注明出处,谢谢!^_^

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

jackailson

你的鼓励是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值