无法转换argc和argv

时间:2011-11-08 14:39:33

标签: c++

我正在查看一段C ++代码,主函数的第一行引起了我的注意:

int main(int argc, const char* argv[]) {
    (void)argc; (void)argv;
     ...
}

除了这一行之外,根本没有使用argc和argv。作者为什么要进行空洞演员?是否可以阻止编译器抱怨未使用的变量?

4 个答案:

答案 0 :(得分:16)

“是否可以阻止编译器抱怨未使用的变量?”

答案 1 :(得分:8)

是的,正是告诉编译器不要抱怨未使用的变量。

答案 2 :(得分:1)

如果设置-Werror选项,编译器会将所有警告设置为错误,停止编译。设置-Wall -Werror以检查所有不一致性是一个很好的做法。

答案 3 :(得分:0)

是的,这是为了防止编译器抱怨未使用的变量。在这种情况下,更好的方法是:

int main(int, char**) {
    ...
}

保留未命名的参数告诉编译器它们在那里但没有被使用。