int main()和void main()如何工作
我是C语言的初学者。 任何人都可以使用示例详细解释main(),int main(),void main(),main(void),void main(void),int main(void)如何在C语言中工作? 正如在我们使用void main()时发生的事情以及当我在简单语言中使用int main()时发生的事情等等。
我知道,但无法理解它在做什么:
- main() – 函数没有参数
- int main() – 函数返回int值
- void main() – 函数返回任何内容等。
当我使用int main()返回0编写简单的hello world时,它仍然给出与使用void main()时相同的输出,那么它是如何工作的? 它的应用是什么?
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中,以下function之间的区别:
int main() int main(void) int main(int argc, char* argv[])
是:
int main()
- 期望未知类型的未知数量的参数的函数。 返回表示应用程序软件状态的整数。
int main(void)
- 一个不需要参数的函数。 返回表示应用程序软件状态的整数。
int main(int argc, char * argv[])
- 期望argc参数和argv []参数的函数。 返回表示应用程序软件状态的整数。
关于何时使用每个function
int main(void)
- 当你的程序不需要运行/加载的初始参数(从OS接收的参数 – 它自己的程序之外)时,你需要使用这个函数。
int main(int argc,char * argv [])
- 当你的程序需要加载初始参数(从OS接收的参数 – 它自己的程序之外)时,你需要使用这个函数。
关于void main()
在ANSI C 89中,当使用void main
并编译项目AS -ansi -pedantic
(例如在Ubuntu中)时,您将收到一个警告,指示您的main函数是void类型而不是int类型,但是您将能够运行项目。 大多数C开发人员倾向于在其所有变体上使用int main()
,尽管void main()
也会编译。
希望有所帮助!
祝你好运,编码愉快