谁在C中调用主函数

时间:2012-02-04 21:57:19

标签: c linux main

  

可能重复:
  In C, how is the main() method initially called?

我想知道,谁在C中调用主函数。
主要功能的实际用途是什么(为什么主要特殊/必要)? 我可以编写一个没有main函数的c程序吗?

4 个答案:

答案 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]作为此方法的第二个参数传递。这是一个简化,但我希望它有所帮助。