4

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

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

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

4

2 回答 2

4

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

于 2011-11-02T11:01:54.963 回答
4

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

于 2011-11-02T11:02:54.780 回答