#include "log.h"
int print_arr(char *name, int *nums, int len)
{
printf("%s = [", name);
range (i, 0, len)
printf("%s%d", i ? ", " : "", nums[i]);
printf("]\n");
return 0;
}
int print_mat(char *name, int *nums, int h, int w)
{
printf("%s = [\n", name);
range (r, 0, h) {
printf(" [");
range (c, 0, w)
printf("%s%d", c ? ", " : "", nums[r * w + c]);
printf("],\n");
}
printf("]\n");
return 0;
}
int print_bytes(char *name, unsigned char *data, int len)
{
printf("%s=\"", name);
range (i, 0, len)
printf("\\x%02x", data[i]);
printf("\"\n");
return 0;
}
char log_buff[0x100000]; // 1MB
char *log_pbuff = log_buff;
int log_reset = 1;
int log_print(char* format, ...)
{
va_list p;
va_start(p, format);
#if PRINT_TO_SCREEN
vprintf(format, p);
#endif
#if PRINT_TO_STRING
vsprintf(log_pbuff, format, p);
log_pbuff = strchr(log_pbuff, 0);
#endif
#if PRINT_TO_FILE
FILE *fp = fopen("log.txt", log_reset ? "w+" : "a+");
log_reset = 0;
vfprintf(fp, format, p);
fclose(fp);
#endif
va_end(p);
return 0;
}
没有合适的资源?快使用搜索试试~ 我知道了~
C语言常用调试用函数和宏定义头文件,便捷打印参数信息、输出日志
共3个文件
c:2个
h:1个
需积分: 7 3 下载量 113 浏览量
2022-12-04
16:28:31
上传
评论
收藏 1KB ZIP 举报
温馨提示
C语言常用的调试用函数,例如打印参数名和数值、记录日志文件、格式化打印一维和二维数组、二进制信息等。 头文件包含: 1、常用数据类型别名; 2、重定向printf到日志文件,打印信息可选包含行号,便于调试信息追溯; 3、宏定义实现同时打印参数名和参数值,例如输出形式"var=42",原本需要写成printf("var=%d\n", var),现在写成log_num(var)就可以完成打印; 4、格式化打印一维数组、二维数组、二进制信息。 具体使用介绍: https://blog.csdn.net/weixin_39804265/article/details/127802014
资源推荐
资源详情
资源评论
收起资源包目录
log.zip (3个子文件)
main.c 292B
log.c 1KB
log.h 1KB
共 3 条
- 1
资源评论
硫酸锌01
- 粉丝: 187
- 资源: 8
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功