当前文章: 首页 >> 编程开发 >> C语言用宏定义来实现传输可变参数、打印调用处的文件名+行号+函数名
«   2019年10月   »
123456
78910111213
14151617181920
21222324252627
28293031
网站分类
控制面板
您好,欢迎到访网站!
  查看权限
标签列表
最近发表

C语言用宏定义来实现传输可变参数、打印调用处的文件名+行号+函数名

源码:

#include <stdio.h>


// put
#define MY_LOG_PUT(F,T,...) \
    do{ \
        char buff[200]; \
        char *str; \
        str = buff; \
        sprintf(str, "[%s  ]%s %s(Line %d): ",T,__FILE__,__FUNCTION__,__LINE__); str += strlen(str);\
        sprintf(str, ##__VA_ARGS__); str += strlen(str);\
        printf(buff); \
    }while(0)


// DEBUG
#define MY_LOG_DEBUG(F,...)	\
    MY_LOG_PUT(F,"DEBUG",##__VA_ARGS__)

int main()
{
    MY_LOG_DEBUG("1.txt","a=%d",2);

    return 0;
}


效果:

[DEBUG  ]..\c_demo001\main.c main(Line 22): a=2


声明:本站原创文章,转载、复制、使用等请注明出处。
标题C语言用宏定义来实现传输可变参数、打印调用处的文件名+行号+函数名
作者jues
地址: http://blog.jues.org.cn/post/c-yu-yan-yong-hong-ding-yi-lai-shi-xian-chuan-shu-ke-bian-can-shu-da-yin-diao-yong-chu-de-wen-jian-ming-xing-hao-han-shu-ming.html

发表评论:

Powered By Z-BlogPHP 1.5.2 Zero Powered By Z-BlogPHP © 2018 jues博客 Copyright Your WebSite.Some Rights Reserved.联系站长 Themes by jues