我正在查看第三方代码库,并看到了assert宏的以下定义:
#define assert( x ) \
if( !( x ) ) { \
ThrowException( __FILE__, __LINE__ ); \
} else \
((void)1)(void)1有什么意义呢?它有什么比惯用(void)0更好的?
发布于 2011-11-02 19:01:55
(void)1和(void)0之间没有区别。
发布于 2011-11-02 19:02:55
我认为这并不重要(并且会被编译器优化掉)。<cassert>是一个标准的C++头(使用标准的<assert.h> C头),它定义了一个标准的assert宏,因此应用程序不应该重新定义它。
https://stackoverflow.com/questions/7979179
复制相似问题