摘抄的一些比较实用的宏定义
来源:互联网 发布:最全网络理财服务 编辑:程序博客网 时间:2024/06/16 17:33
///////////////////////////////////////////////////////////////////////////////////////////////////////////
//以下代码来自google glog,备注由我自己添加,见笑啦!
//当表达式cond的结果为FALSE时,打印日志并退出
#define EXPECT_TRUE(cond) /
do { /
if (!(cond)) { /
fprintf(stderr, "Check failed: %s/n", #cond); /
exit(1); /
} /
} while (0)
//当表达式cond的结果为TURE时,打印日志并退出
#define EXPECT_FALSE(cond) EXPECT_TRUE(!(cond))
//op是操作符,例如“==” “!=" “>=" “<=" “&&" “||" ">“ “<" 等等
//当(val1 op val2)的值为FALSE时,打印日志并退出
#define EXPECT_OP(op, val1, val2) /
do { /
if (!((val1) op (val2))) { /
fprintf(stderr, "Check failed: %s %s %s/n", #val1, #op, #val2); /
exit(1); /
} /
} while (0)
//对上面宏的实用
#define EXPECT_EQ(val1, val2) EXPECT_OP(==, val1, val2)
#define EXPECT_NE(val1, val2) EXPECT_OP(!=, val1, val2)
#define EXPECT_GT(val1, val2) EXPECT_OP(>, val1, val2)
#define EXPECT_LT(val1, val2) EXPECT_OP(<, val1, val2)
//验证val1和val2是否相等 精确度为0.001
#define EXPECT_DOUBLE_EQ(val1, val2) /
do { /
if (((val1) < (val2) - 0.001 || (val1) > (val2) + 0.001)) { /
fprintf(stderr, "Check failed: %s == %s/n", #val1, #val2); /
exit(1); /
} /
} while (0)
//验证C字符创是否相等
#define EXPECT_STREQ(val1, val2) /
do { /
if (strcmp((val1), (val2)) != 0) { /
fprintf(stderr, "Check failed: streq(%s, %s)/n", #val1, #val2); /
exit(1); /
} /
} while (0)
- 摘抄的一些比较实用的宏定义
- 一些比较实用的网站
- 一些比较精妙的宏定义
- 一些比较好的宏定义
- 一些比较精妙的宏定义
- ios开发中,比较实用的全局宏定义分享
- 一些CSDN的摘抄
- iOS开发笔记--一些实用的宏定义
- iOS开发笔记--一些实用的宏定义
- 一些QTP比较实用的方法
- 一些比较实用的.net技巧
- oracle 一些比较实用的用法
- 计算机视觉一些比较实用的文章
- 一些比较好的宏定义,分享给大家
- CodeProject上的一些摘抄
- 摘抄一些比较好的激励性的中英文对译德句子
- .NET学习的一些比较实用的技巧
- 一些比较实用的正则表达式(整理)
- Mediator (C++实现)
- usaco-orderd fractions
- 如何改变Android tab 的高度和字体大小
- 读内核笔记索引
- P2P网络技术原理与C++开发案例
- 摘抄的一些比较实用的宏定义
- 键盘按键编码对应表
- SET QUOTED_IDENTIFIER OFF语句的作用
- Jquery读取WebService、WebService返回DataSet常见问题
- 国内四大手机销售代理
- Java异常机制,转载
- 双链表的基本操作(经过测试的)
- sql server系统表详细说明(转)
- 【转】如何让TortoiseSVN仅导出新增或修改过(变更过)的文件