linux设置宏运行显示信息,linux C宏定义实现打印调试信息

本文仅实现了三种宏定义调试

#define LOG(s)                                   日志显示(文件名:行号}+日志信息

#define ERROR(s)                            错误信息位置(级别+文件名+函数名+行号+错误信息)

#define PrintArray2D(arr,m,n)         二维float数组按行列打印显示

代码如下:

#include

/**

* 简单打印调试信息

*/

#define DEBUG 1

#ifdef DEBUG

//日志显示(文件名:行号}+日期

#define LOG(s) printf("[%s:%d] %s\n", __FILE__, __LINE__, s)

//错误信息位置(级别+文件名+函数名+行号+错误信息)

#define ERROR(s) \

do{ \

fprintf(stderr, "[ERROR at:]%s %s(Line %d): %s\n",__FILE__,__FUNCTION__,__LINE__,s); \

}while(0)

//二维float数组打印显示

#define PrintArray2D(arr,m,n) \

do \

{ \

int i = 0; \

int j = 0; \

for(i=0;i

{ \

for(j=0;j

{ \

printf("%f ",arr[i][j]); \

} \

printf("\n"); \

} \

}while(0)

#else

//日志不显示

#define LOG(s) NULL

//二维float数组打印不显示

#define PrintArray2D(arr,m,n) NULL

//错误信息不显示

#define ERROR(s) NULL

#endif

对此三种加上了条件编译判断,只有当DEBUG定义后,才显示具体错误信息,调试数组显示信息,否则一律为NULL,即不显示

当调试时,在该头文件上方加入:#define DEBUG        1 语句即可

当不调试改为发行版本时,注释该语句

当然,还应该有一个时间显示的宏,但由于需要加入头文件,所以本次测试未测试该宏语句

读者可能在采用本代码时出现宏定义错误情况,出现错误原因可能是 接续符“\"没有严格为反斜杠

或者是位置错误引起的,此时在VC或者DEV环境下稍加调试即可

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值