Avoiding unused variables warnings when using assert() in a Release build

前端 未结 16 1784
隐瞒了意图╮
隐瞒了意图╮ 2020-12-05 09:10

Sometimes a local variable is used for the sole purpose of checking it in an assert(), like so -

int Result = Func();
assert( Result == 1 );
<
16条回答
  •  自闭症患者
    2020-12-05 09:56

    I'd use the following:

    #ifdef _DEBUG
    #define ASSERT(FUNC, CHECK) assert(FUNC == CHECK)
    #else
    #define ASSERT(FUNC, CHECK)
    #endif
    
    ...
    
    ASSERT(Func(), 1);
    

    This way, for release build, the compiler don't even need to produce any code for assert.

提交回复
热议问题