MISRA C++ 2008之0-3-2规则
如果函数返回了错误信息,则应该测试该错误信息。
extern void fn3 ( int32_t i, bool & flag );
int32_t fn1 ( int32_t i )
{
int32_t result = 0;
bool success = false;
fn3 ( i, success ); // Non-compliant - success not checked
return result;
}
int32_t fn2 ( int32_t i )
{
int32_t result = 0;
bool success = false;
fn3 ( i, success ); // Compliant - success checked
if ( !success )
{
throw 42;
}
return result;
}
-------------------
有时候我们确实不需要检查带有返回值的函数的返回值,例如当一个程序要退出时:
(void)fclose(pf);
pf = NULL;
修改fn1函数使之符合规则
int32_t fn1 ( int32_t i )
{
int32_t result = 0;
bool success = false;
fn3 ( i, success ); // Non-compliant - success not checked
// 如果此处不需要检查success则可以
(void)successed;
return result;
}


![[原创] MISRA C++ 2008之0-3-2规则 [原创] MISRA C++ 2008之0-3-2规则](http://www.mshxw.com/aiimages/31/955032.png)
