这个问题在这里已有答案:
我是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()时相同的输出,那么它是如何工作的?它的应用是什么?
2 回答
main()
或void main()
都不是标准C.前者是允许的,因为它具有隐含的int
返回值,使其与int main()
相同 .main
的返回值的目的是将exit status返回给操作系统 .在标准C中,
main
的唯一有效签名是:和
您正在使用的表单:
int main()
是一个旧样式声明,表示main
采用未指定数量的参数 . 不要使用它 - 选择上述之一 .如果你真的想了解ANSI C 89,我需要纠正你的一件事;在ANSI C 89中,以下功能之间的区别:
是:
int main()
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()
也会编译 .希望有所帮助!
祝你好运,编码愉快