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

    #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 年前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐