linux C宏定义实现打印调试信息
linux-dash
A beautiful web dashboard for Linux
项目地址:https://gitcode.com/gh_mirrors/li/linux-dash
免费下载资源
·
本文仅实现了三种宏定义调试
#define LOG(s) 日志显示(文件名:行号}+日志信息
#define ERROR(s) 错误信息位置(级别+文件名+函数名+行号+错误信息)
#define PrintArray2D(arr,m,n) 二维float数组按行列打印显示
代码如下:
#include <stdio.h>
/**
* 简单打印调试信息
*/
#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<m;i++) \
{ \
for(j=0;j<n;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 语句即可
当不调试改为发行版本时,注释该语句
当然,还应该有一个时间显示的宏,但由于需要加入头文件<time.h>,所以本次测试未测试该宏语句
读者可能在采用本代码时出现宏定义错误情况,出现错误原因可能是 接续符“\"没有严格为反斜杠
或者是位置错误引起的,此时在VC或者DEV环境下稍加调试即可
GitHub 加速计划 / li / linux-dash
10.39 K
1.2 K
下载
A beautiful web dashboard for Linux
最近提交(Master分支:2 个月前 )
186a802e
added ecosystem file for PM2 4 年前
5def40a3
Add host customization support for the NodeJS version 4 年前
更多推荐
已为社区贡献8条内容
所有评论(0)