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



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

#define assert( x ) 
     if( !( x ) ) { 
        ThrowException( __FILE__, __LINE__ ); 
     } else 
        ((void)1)

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

(void)1(void)0之间没有差异。

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

相关内容

  • 没有找到相关文章

最新更新