我正在查看一段C ++代码,主函数的第一行引起了我的注意:
int main(int argc, const char* argv[]) {
(void)argc; (void)argv;
...
}
除了这一行之外,根本没有使用argc和argv。作者为什么要进行空洞演员?是否可以阻止编译器抱怨未使用的变量?
答案 0 :(得分:16)
“是否可以阻止编译器抱怨未使用的变量?”
是
答案 1 :(得分:8)
是的,正是告诉编译器不要抱怨未使用的变量。
答案 2 :(得分:1)
如果设置-Werror
选项,编译器会将所有警告设置为错误,停止编译。设置-Wall -Werror
以检查所有不一致性是一个很好的做法。
答案 3 :(得分:0)
是的,这是为了防止编译器抱怨未使用的变量。在这种情况下,更好的方法是:
int main(int, char**) {
...
}
保留未命名的参数告诉编译器它们在那里但没有被使用。