我正在查看第三方代码库,并查看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
宏,因此应用程序不应该重新定义它