谁能帮我理解这行的意思?
我知道这是一种宏观结构,但是 , 在代码中有什么建议??
#define ReturnErr(fCall) if (iErr = (fCall), (iErr != NO_ERRORS)) {return iErr;}
最佳答案
一个合格的猜测是这个宏应该像这样使用:
err_t func (void)
{
err_t iErr;
ReturnErr(some_function());
...
return NO_ERRORS;
}
在这种情况下宏扩展为:
err_t func (void)
{
err_t iErr;
if(iErr = some_function(), iErr != NO_ERRORS) { return iErr; }
...
return NO_ERRORS;
}
这反过来只是一种不必要的混淆方式
err_t func (void)
{
err_t iErr;
iErr = some_function();
if(iErr != NO_ERRORS)
{
return iErr;
}
...
return NO_ERRORS;
}
换句话说,宏很可能是一次又一次地重复相同的错误处理代码的尝试。
关于c++ - 无法理解是否在 #define 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22861253/