C 语言调试信息输出宏定义

C 语言经常在实际的调试过程中,使用最基本的调试方法printf,我们可以使用__FILENAME__、__FUNCTION__、__LINE__,增加自己的输出宏定义:

#define DVR_PRT(format,...)  printf("[File:"__FILE__", Line:%d]  "format, __LINE__, ##__VA_ARGS__)
#define PRT(format,...)  printf("[File:%s, Line:%d] "format, __FILE__, __LINE__, ##__VA_ARGS__)

测试代码:

#include <stdarg.h> 
#include <stdio.h>

#define PRT(...) printf("Filename %s, Function %s, Line %d > ", __FILE__, __FUNCTION__, __LINE__); \
                            printf(__VA_ARGS__); \
                            printf("\n");

int main() 
{  
   int a =0;
   PRT("a");
   PRT("hello, %d ", 10);
   PRT("%d, %s, %d", 10, "dafdsa", 20);
   return 0; 
}

测试结果:

root@ubuntu:/home/ybq/Desktop# gcc printf.c -o printf
root@ubuntu:/home/ybq/Desktop# ./printf
Filename printf.c, Function main, Line 22 > a
Filename printf.c, Function main, Line 23 > hello, 10 
Filename printf.c, Function main, Line 24 > 10, dafdsa, 20
posted @ 2019-04-26 10:25  youngliu91  阅读(855)  评论(0编辑  收藏  举报