By: Ailson Jack
Date: 2021.10.29
个人博客:http://www.only2fire.com/
本文在我博客的地址是:http://www.only2fire.com/archives/140.html,排版更好,便于学习,也可以去我博客逛逛,兴许有你想要的内容呢。
在程序的开发和调试过程中,可以使用一个宏定义来代替printf输出调试信息,等程序开发完成之后,如果不需要调试信息,直接将宏定义为空就行,这样便于随时打开和关闭调试信息。这样的调试程序的宏一般是可变参数宏,因为打印函数printf是可变参数的,因此定义的宏也要求支持可变参数。
可变参数宏可以接受可变数目的参数,就像可变参数的函数一样。可变参数宏也使用三个点(…)来表示宏的可变参数性。
__VA_ARGS__ 宏是用来表示可变参数宏的可变参数的内容。简单的说就是将可变参数宏中的 … 的内容原样传递给右边 __VA_ARGS__ 所在的位置。示例代码如下:
#include#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:%drn", name, age); DEBUG_PRINT("blog: www.only2fire.com"); return 0; }
通过屏蔽或打开程序中的 __DEBUG__ 宏,可以让调试信息输出或者不输出。
欢迎关注博主的公众号呀:
如果文中有什么问题欢迎指正,毕竟博主的水平有限。
如果这篇文章对你有帮助,记得点赞和关注博主就行了^_^。
排版更好的内容见我博客的地址:http://www.only2fire.com/archives/140.html
注:转载请注明出处,谢谢!^_^



