有人可以解释一下内部发生的事情吗,除了main
是起点,我们不能有两个起点。
int main()
{
int main()
{
return 0;
}
return 0;
}
这不是合法的 C 代码 - 在 C 中,函数不能在彼此内部定义。
没有根本原因不能这样做,但是实现这样的函数要么使激活记录布局复杂化并会损害效率(因为闭包等考虑因素),要么引入内存错误的可能性(如果您返回指向另一个函数内部函数的指针,并且内部函数引用外部函数中的数据, 会发生什么? 为了简单和高效起见,C 只是不支持这一点。
希望这有帮助!
标准 C 不允许在另一个函数中定义一个函数。一些编译器支持将其作为扩展,但名称必须不同,否则按其名称调用函数将不明确。
main
是程序的入口点。根据定义,程序具有单个入口点:它是在程序启动时(经过一些初始化)执行的函数,当此函数返回时程序退出(经过一些清理)。
因为程序必须有一个起点。命名为"main"的函数是 C 语言的默认起点。这就是为什么 C保留了"main"作为名称,并且不能有另一个名为"main"的函数。