我想知道,谁在C中调用主函数。
主要功能的实际用途是什么(为什么主要特殊/必要)?
我可以编写一个没有main函数的c程序吗?
答案 0 :(得分:7)
实际上,{C}运行时调用main
函数。
您可以编写一个没有main
的程序,但必须有一个入口点。不同的操作系统允许您为程序指定不同的入口点,但它们都与main
具有相同的用途。在Windows上,您可以使用WinMain
。在Linux上,您可以在没有CRT的情况下进行链接并定义您自己的_start
函数(但它无法返回!)
没有入口点的程序就像没有轮子的汽车:它不会去任何地方。
答案 1 :(得分:5)
当您要求操作系统运行文件时,它会将其加载到内存中,然后跳转到它的起始点(_start
等)。此时,有一个代码,调用main
然后退出(链接器负责此部分)。如果您将编写没有main
函数的程序,链接器将给您一个错误,因为它无法找到它。
答案 2 :(得分:0)
你的程序(包含在函数内的一系列代码)必须有一个起点吗?
必须首先调用某些东西才能运行其余部分。
所以,起点是main
,它由您的操作系统中的父进程调用(无论如何)并让您的程序运行
答案 3 :(得分:0)
最简单的答案是:程序的用户在启动应用程序时调用main函数。你曾经使用过命令终端吗?如果你有,你会知道你可以将参数传递给命令。例如:
$ grep word myfile
幕后的内容是终端查看您键入的内容然后调用grep程序的main
方法并将[word, myfile]
作为此方法的第二个参数传递。这是一个简化,但我希望它有所帮助。