2012-03-16 21 views
0

发出“未引用形式参数”警告的原因是什么?在an existing SO post中,解释了此警告对于引起程序员注意函数(以防他忘记对参数执行一些操作)有用,并且对代码维护也很有用(向未来的开发人员发出该信号未被省略,但故意遗漏了)。除了风格问题之外,为什么程序员希望对未使用的参数提出警告?如果按值传递,这些参数是否被复制?为什么“未引用的形式参数”担心我?

void myFunction(int param) { 
} 
+1

如果通过值传递,它们将被复制。 – Mahesh 2012-03-16 11:54:03

+0

你可以摆脱'param',所以你只剩下'void myFunction(int)',虽然这可能会让人困惑。有时你会看到注释掉的参数'void myFunction(int/* param * /)',但我不愿在C++代码库中使用C风格的注释。 – 2012-03-16 12:50:10

回答

3

为了防止可能发生的干扰(忘记使用参数),争取一个更易于维护的代码足够的理由。

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

1

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

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

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

相关问题