开发者社区> 问答> 正文

在读libevent源码时,对于下面的代码不懂?能够告诉我什么意思吗?

下面一个断言:
EVUTIL_ASSERT(chain->refcnt > 0);

看其实现:

#define EVUTIL_ASSERT(cond) EVUTIL_NIL_CONDITION_(cond)
#define EVUTIL_NIL_CONDITION_(condition) do {\
    (void)sizeof(!(condition));\
}while(0)

疑问

EVUTIL_ASSERT(cond)是一个断言吗?如果不是,那么这是在干什么?
强制转换成void这是在干什么?

展开
收起
a123456678 2016-06-07 20:03:09 1902 0
1 条回答
写回答
取消 提交回答
  • EVUTIL_ASSERT: Use sizeof() to avoid "unused variable" warnings.
    在最新稳定版的代码中,这个宏的定义已经改变了

    2019-07-17 19:30:56
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载