4

サード パーティのコードベースを確認していて、次のassertマクロの定義が表示されます。

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

のポイントは(void)1何ですか? 慣用句よりもどのように優れてい(void)0ますか?

4

2 に答える 2

4

それほど問題ではないと思います(コンパイラによって最適化されます)。Andは、標準マクロを定義する<cassert>標準 C++ ヘッダー (標準 C ヘッダーを使用) であるため、アプリケーションで再定義しないでください。<assert.h>assert

于 2011-11-02T11:02:54.780 に答える
4

(void)1と の間に違いはありません(void)0

于 2011-11-02T11:01:54.963 に答える