如何解决定义“int main (void)”和“int main (int argc, char *argv[])”之间有什么区别以及何时使用哪个?
根据当前标准和 cppreference 这两个是定义 main()
函数的正确方法。我知道参数在这两个定义中的含义,并且不寻求在这方面进行澄清。我想了解的是:
- 何时使用
int main (void)
v/sint main (int argc,char *argv[])
。 - 假设,当程序不需要命令行参数时,编译器(比如
gcc
和clang
)有什么区别吗? - (只是为了编写自文档化代码)我应该在程序不需要命令行参数时使用
int main (void)
,而在需要时使用int main (int argc,char *argv[])
吗?
解决方法
我认为您可以得到很好的答案here。阅读这篇文章,我对您的问题的回答是:
- 在需要访问程序参数时使用
int main (int argc,char *argv[])
; - 我不希望编译器在两种方式上有任何区别,曾经,in this experiment,两个 C 程序具有相同的汇编输出;
- 我建议您在程序不需要访问参数时使用
int main (void)
。这样,其他人就清楚您的程序不使用它们。将来,如果您需要访问程序的参数,更改main()
函数的语法并不难。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。