所以我知道在C++中将变量标记为未使用的两种方法:
首先(在函数体内)
void func1(int i, int unused) {
(void)unused; //marking 'unused' here
i++;
}
Run Code Online (Sandbox Code Playgroud)
和类似的
第二个(在函数的参数列表中)
void func2(int i, int /* marking 'unused' here */ ) {
i++;
}
Run Code Online (Sandbox Code Playgroud)
在我看来,第二个更好,因为它:
此外,为这两个函数生成的汇编代码是相同的(使用gcc 4.9.2测试),因此它也不是关于性能权衡.
鉴于此,我的问题是:为什么使用第一个这么常见?
如果您使用的是C++,则可以使用Second.如果你有一些C遗产:第二个实际上是非法的.
码:
int foo(int) {
int i=0;
return i;
}
Run Code Online (Sandbox Code Playgroud)
输出:
$ gcc -c -ansi -pedantic main.c
main.c: In function 'foo':
main.c:1:1: error: parameter name omitted
Run Code Online (Sandbox Code Playgroud)