我是C语言的初学者。任何人都可以使用示例详细解释main(),int main(),void main(),main(void),void main(void),int main(void)如何在C语言中工作?就像在我们使用void main()时发生的事情以及当我以简单语言使用int main()时发生的事情等等。
我知道,但无法理解它在做什么:
当我使用int main()返回0编写简单的hello world时,它仍然提供与使用void main()时相同的输出,那么它是如何工作的?它的应用是什么?
答案 0 :(得分:23)
main()
或void main()
都不是标准C.前者是允许的,因为它具有隐式int
返回值,使其与int main()
相同。 main
的返回值的目的是将exit status返回给操作系统。
在标准C中,main
的唯一有效签名是:
int main(void)
和
int main(int argc, char **argv)
您正在使用的表单:int main()
是一个旧样式声明,表示main
采用了未指定数量的参数。不要使用它 - 选择上述之一。
答案 1 :(得分:11)
如果您真的想了解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[])
关于何时使用每个功能
int main(void)
int main(int argc,char * argv [])
关于void main()
在ANSI C 89中,当使用void main
并编译项目AS -ansi -pedantic
时(例如在Ubuntu中)
您将收到一条警告,指出您的main函数类型为void而不是int类型,但您将能够运行该项目。
大多数C开发人员倾向于在其所有变体上使用int main()
,但void main()
也会编译。
希望有所帮助!
祝你好运,编码愉快