首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >int main()和()是如何工作的?

int main()和()是如何工作的?
EN

Stack Overflow用户
提问于 2013-09-21 02:23:48
回答 2查看 105.9K关注 0票数 17

我是C语言的初学者。谁能用例子详细解释一下C语言如何使用main()、explain ()、void ()、main( void )、void(Void)、void(Void)、explain(Void)?

与之一样,当我们使用void ()和在简单语言中使用int ()时会发生什么情况等等?

我知道,但我不明白它在做什么

  1. main() -函数没有参数
  2. int main() -函数返回int值
  3. void ()-函数不返回任何内容,等等。

当我使用int ()返回0编写一个简单的https://en.wikipedia.org/wiki/%22Hello,_World!%22_program程序时,它仍然给出与使用void ()相同的输出,那么它是如何工作的呢?它的应用是什么?

EN

回答 2

Stack Overflow用户

发布于 2013-09-21 02:25:42

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

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

代码语言:javascript
复制
int main(void)

代码语言:javascript
复制
int main(int argc, char **argv)

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

票数 27
EN

Stack Overflow用户

发布于 2014-08-17 07:44:23

如果您真的想了解ANSI C89,我需要在一件事上纠正您;在ANSI C89中,以下函数之间的区别:

代码语言:javascript
复制
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)

  • 当程序不需要初始参数来运行/加载时,您需要使用这个函数(从程序本身的操作系统中接收到的参数)。

int (int,char * argv[])

  • 当程序需要加载初始参数时,您需要使用这个函数(从程序本身的操作系统接收到的参数)。

关于void main()

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

票数 15
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18928279

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档