利用c语言宏#的用法打日志并统计错误
来源:互联网 发布:常见的网络攻击类型有 编辑:程序博客网 时间:2024/06/08 12:32
c语言的宏因为本质是字符替换,不是类型安全的行为,但也因为其字符替换的本质使其具有了一些编译期的动态特性,对于一些特殊的场合就非常的有用,比如下面的打日志。
宏的使用这篇文章写的很不错,C语言宏的特殊用法和几个坑.
#include <stdio.h>typedef enum{ ERROR_ONE, // 0 ERROR_TWO, ERROR_THREE, ERROR_END}E_ERROR_CODE;unsigned long g_error_statistics[ERROR_END] = {0};/* LOG 打印, # 直接常亮字符串替换 */#define LOG_PRINT(ERROR_CODE) \do { \ g_error_statistics[ERROR_CODE]++; \ printf("[%s : %d], error is %s\n", __FILE__, __LINE__, #ERROR_CODE); \} while (0)/* ERROR 公共前缀,传参时省略的写法, ## 直接展开拼接 */#define LOG_PRINT_2(CODE) \do { \ g_error_statistics[ERROR_ ## CODE]++; \ printf("[%s : %d], error is %s\n", __FILE__, __LINE__, "ERROR_" #CODE); \} while (0)int main(){ LOG_PRINT(ERROR_TWO); LOG_PRINT_2(ONE); for (unsigned int i = 0; i < ERROR_END; ++i) { printf("error %u statistics is %lu \n", i, g_error_statistics[i]); } return 0;}
1 0
- 利用c语言宏#的用法打日志并统计错误
- 【C】c语言里常见的一些错误用法!!!!
- 利用vs2015编写C语言遇见的错误集
- c 语言宏的用法
- C语言宏的用法
- C语言的利用
- C语言简单的日志宏打印
- C语言指针的五种错误用法(转)
- C语言 产品的统计
- C语言的打问题啊
- C语言日志的实现,用宏实现日志
- 统计字符串中字母出现的次数并打印最多的字母----C语言练习题
- 利用ssh下载symbols并通过addr2line定位so库错误位置的用法
- 用c语言读取固定大小的raw格式图像并统计灰度值
- 【C语言】过滤字符串非字母的字符并统计字母数
- 【C语言】求1000-2000年的闰年,并统计个数
- c语言的日志库
- C语言 输入字符并统计出现次数(练习)
- C++ 重载和const形参
- 第四周项目四(2)
- cocoapods
- java常用设计模式
- previously initiated loading for a different type with name "javax/servlet/ServletContext"
- 利用c语言宏#的用法打日志并统计错误
- JavaScript学习笔记(一)
- 解一元二次方程(基于对话框)
- Oracle查询多个字段行转列处理实践案例
- 47. Permutations II | Java最短代码实现
- unityassetbundle 打包存放百度云加载
- Tkinter -- Toolbar
- stl之map介绍
- 练习一1000