int main()和void main()如何工作

这个问题在这里已经有了答案:

  • main()应该在C和C ++中返回什么? 19个答案

  • main()void main()都不是标准C.前者是允许的,因为它有一个隐式的int返回值,使其与int main()相同。 main返回值的目的是将退出状态返回到操作系统。

    在标准C中, main的唯一有效签名是:

    int main(void)
    

    int main(int argc, char **argv)
    

    您正在使用的表单: int main()是一个旧式样声明,指示main获取未指定数量的参数。 不要使用它 - 从上面选择一个。


    如果你真的想理解ANSI C 89,我需要纠正你的一件事情; 在ANSI C 89中,以下函数之间的区别:

    int main()
    int main(void)
    int main(int argc, char* argv[])
    

    是:

    int main()

  • 这个函数需要未知类型的未知数量的参数。 返回表示应用程序软件状态的整数。
  • int main(void)

  • 一个不需要参数的函数。 返回表示应用程序软件状态的整数。
  • int main(int argc, char * argv[])

  • 一个需要argc个参数和argv []参数的函数。 返回表示应用程序软件状态的整数。
  • 关于何时使用每个功能

    int main(void)

  • 当程序不需要初始参数来运行/加载时(从OS接收的参数 - 不在程序中),您需要使用此函数。
  • int main(int argc,char * argv [])

  • 当程序需要加载初始参数时(从OS接收的参数 - 不在程序中),您需要使用此函数。
  • 关于void main()

    在ANSI C 89中,当使用void main并编译项目AS -ansi -pedantic (例如在Ubuntu中)时,您将收到一条警告,指出您的主函数的类型为void而不是int类型,但您将能够运行该项目。 大多数C开发人员倾向于在其所有变体上使用int main() ,但void main()也将编译。

    希望有所帮助!

    祝你好运,快乐的编码

    链接地址: http://www.djcxy.com/p/72171.html

    上一篇: how does int main() and void main() work

    下一篇: Returning type casted array to main function