目录
宏
宏就是基础的替换
S(int, p)= & n 就是 int *p = &n
有个需要注意的点 不要#include太多不需要的东西,会使预编译变得复杂
非标准库的使用会影响程序的可移植性
变参宏
实现EXPECT系列封装
代码审美能力
这段是垃圾代码
这段好很多
实现COLOR系列封装
“#” 字符串化
_attribute_完成函数注册功能
(constructor)这个属性会先于主函数执行,不需调用
完善功能:测试框架初养成
下面这两张图都应该是 const char * func_name, 否则类型不匹配
输出:
错误信息用黄色输出
输出: