不应存在未被使用的具名形式参数
8.5 ID_paramNotUsed
如果函数的某个参数在函数内没有被用到,意味着函数的功能与设计之间存在差距。
如果某个参数确实不需要被用到,应尽量从参数列表中将其删除,如果需要遵循某种约定而必须保留参数(如虚函数或回调函数等),在 C++ 代码中不妨将参数的名称删掉,或使用 C++17 属性 [[maybe_unused]] 标注,在 C 代码中可用显式 void 转换指明未使用的参数在预期之内,并用注释说明参数未被使用的原因。
示例:
int foo(int x) { // Non-compliant, ‘x’ is not used
return 0;
}
应改为:
int foo(int x) { // Compliant in C
(void)x;
return 0;
}
int foo(int) { // Compliant in C++, or use ‘[[maybe_unused]] int x’ in C++17
return 0;
}
依据
ISO/IEC 14882:2017 10.6.6
参考
C++ Core Guidelines F.9
MISRA C 2012 2.7
MISRA C++ 2008 0-1-11