【问题标题】:What is the difference between the definitions "int main (void)" and "int main (int argc, char *argv[])" and when to use which?定义“int main (void)”和“int main (int argc, char *argv[])”有什么区别,何时使用?
【发布时间】:2021-03-03 01:44:26
【问题描述】:

根据当前标准和cppreference 这两个是定义main() 函数的正确方法。我知道参数在任一定义中的含义,并且不寻求对此方面的澄清。我想了解的是:

  1. 何时使用int main (void) v/s int main (int argc, char *argv[])
  2. 假设,当程序不需要命令行参数时,编译器(比如说gccclang)有什么不同吗?
  3. (只是为了编写自文档代码)当程序不需要命令行参数时我应该使用int main (void),而当它需要时使用int main (int argc, char *argv[])

【问题讨论】:

标签: c main


【解决方案1】:

我想你可以得到一个很好的答案here。阅读本文,我对您的问题的回答是:

  1. 在需要访问程序的参数时使用int main (int argc, char *argv[])
  2. 我不希望这两种方式对编译器有任何区别,曾经in this experiment,两个 C 程序都有相同的汇编输出;
  3. 我建议您在程序不需要访问参数时使用int main (void)。这样,其他人就很清楚您的程序不使用它们。将来,如果您需要访问程序的参数,更改main() 函数的语法并不难。

【讨论】:

    猜你喜欢
    • 2020-11-03
    • 1970-01-01
    • 2012-01-30
    • 1970-01-01
    • 1970-01-01
    • 2011-07-08
    • 2014-10-09
    • 2013-09-08
    相关资源
    最近更新 更多