形式参数不应被修改
8.6 ID_paramModified
为了提高可读性和可维护性,应分清形式参数和普通局部对象的职责,避免修改形式参数。
参数记录着外部输入函数的数据,为了便于阅读和调试,应保持参数的值不变。另外,为了修改实际参数而修改非引用型的形式参数是无效的,也是初学者易犯的错误。
示例:
void foo(int i)
{
for (i = 0; i < 5; i++) { // Non-compliant
....
}
}
例中参数 i 被当作局部变量使用是不符合要求的。
例外:
void bar(int& i)
{
i = 0; // Compliant
}
引用型参数不受本规则限制。
相关
参考
MISRA C 2012 17.8