为什么“未引用的形式参数”让我担心?

时间:2012-03-16 11:52:22

标签: c++ compiler-construction compilation

发出“未引用的形式参数”警告的原因是什么?在an existing SO post中,这个警告被解释为有助于引起程序员对函数的注意(如果他忘了用参数做一些操作),并且对代码维护也很有用(向未来的开发人员发出信号)参数未被省略,但故意遗漏)。除了样式问题,为什么程序员想要警告未使用的参数?是否复制了这些参数,如果按值传递?

void myFunction(int param) {
}

2 个答案:

答案 0 :(得分:3)

为了防止可能的干扰(忘记使用参数)并争取更易于维护的代码是足够的原因。

复制的未使用参数的可能性能损失是另一个原因,但不是主要原因。

答案 1 :(得分:1)

虽然没有指定,但我敢打赌,在函数定义中省略参数名称不会改变任何二进制代码。

仅具有可用功能声明的编译单元将不知道是否复制参数。其他编译单元可以对函数调用应用常规优化,任何值为salt的优化器都会在函数开始时发现该参数是死的。

因此,我不担心这里的表现。纯粹的原因是可读性。