1.为什么C main()函数中的"main"是标识符? 2.如果main是一个标识符,那么程序如何仅从main开始执行。
最佳答案
main
是一个函数,几乎与其他函数完全相同。它由标识符命名,被调用,接收一些参数,执行某些操作,返回一个值。这几乎就是函数的定义。 C 的设计者追求简单性,因此让程序的入口点成为一个普通函数是非常有意义的。
如果您是一名汇编语言程序员,您可能知道程序的入口点只是一个地址,而不是一个完整的函数。但这是汇编语言的说法:C 是一种高级语言。
正如其他人所解释的,在某处有一些低级启动代码(通常用汇编程序编写),它们具有程序的实际入口点,当程序启动时跳转到。该启动代码是实际调用您的 main
函数的代码。
我说过main
是一个普通函数,而且大多数情况下都是这样,但它具有其他函数不共享的三个特殊属性:
这几乎是您编写的唯一一个您无需选择自己的名称、返回值和参数类型的函数——这些都是为您选择的(或者,如果您想认为那样的话,是语言强加给你的。例如,返回类型必须为
<int
,因为语言是这样规定的。您不能仅仅因为您愿意就将其设置为其他类型(当然,很多程序员将其设置为空,并且经常侥幸逃脱)。main
实际上有两组可以接受的有效参数:零或两个,即int
和char **
(传统上称为argc
和argv
)。作为一个非常的特殊异常(exception),即使
main
返回int
,您也可以不拥有return
语句,编译器基本上会为您插入一个,使main()
默认返回 0。
关于C 标识符和主函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50506880/