首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么在C++中使用(void)1作为no-op?

为什么在C++中使用(void)1作为no-op?
EN

Stack Overflow用户
提问于 2011-11-02 18:56:42
回答 2查看 941关注 0票数 4

我正在查看第三方代码库,并看到了assert宏的以下定义:

代码语言:javascript
复制
#define assert( x ) \
     if( !( x ) ) { \
        ThrowException( __FILE__, __LINE__ ); \
     } else \
        ((void)1)

(void)1有什么意义呢?它有什么比惯用(void)0更好的?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-11-02 19:01:55

(void)1(void)0之间没有区别。

票数 4
EN

Stack Overflow用户

发布于 2011-11-02 19:02:55

我认为这并不重要(并且会被编译器优化掉)。<cassert>是一个标准的C++头(使用标准的<assert.h> C头),它定义了一个标准的assert宏,因此应用程序不应该重新定义它。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7979179

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档