可能重复:
在C中,main()方法最初是如何调用的?
我想知道,谁调用C中的主函数。
主功能的实际用途是什么(为什么主功能是特殊的/必要的)
我能写一个没有主函数的c程序吗?
main
函数在实践中由C运行时调用。
您可以在没有main
的情况下编写程序,但必须有一个入口点。不同的操作系统允许您为程序指定不同的入口点,但它们都与main
具有相同的用途。在Windows上,您可以使用WinMain
。在Linux上,您可以在没有CRT的情况下进行链接,并定义自己的_start
函数(但它不能返回!)
一个没有入口点的程序就像一辆没有轮子的汽车:它哪儿也去不了。
当您要求操作系统运行一个文件时,它会将其加载到内存中,并跳到它的起点(_start
等)。此时,有一个代码,调用main
,然后退出(链接器负责此部分)。如果你要编写没有main
函数的程序,链接器会给你一个错误,因为它找不到它。
您的程序(捆绑在函数中的一系列代码)必须有一个起点,对吗?
必须先调用一些东西才能运行其余部分。
因此,起点是main
,它由O/S中的父进程调用(无论是什么),并让您的程序运行
$ grep word myfile
下面的内容是终端查看您键入的内容,然后调用grep程序的main
方法,并将[word, myfile]
作为第二个参数传递给该方法。这是一种简化,但我希望它能有所帮助。