写一个宏来判断条件是否符合,若不符合则中断函数,同时兼容返回void的函数。在VS2012和Linux运行正常。
#include <cstdio> #define CHECK(expr,...) \ do{ \ if(!(expr)){ \ printf("check [%s] fail\n",#expr); \ return __VA_ARGS__; \ }\ }while(0) void func1() { CHECK(1 - 1); } int func2() { func1(); CHECK(2 - 2,1); } int main() { func2(); return 0; }