1

有人可以解释一下内部发生的事情,除了那main是起点,我们不能有两个起点。

int main()
{
   int main()
   {
      return 0;
   }
   return 0;
}
4

3 回答 3

3

这不是合法的 C 代码 - 在 C 中,函数不能在彼此内部定义。

没有根本原因你不能这样做,但是实现这样的函数要么使激活记录布局复杂化并且会降低效率(因为考虑到闭包之类的考虑)或引入内存错误的可能性(如果你返回一个指向函数的指针在另一个函数内部,而内部函数引用外部函数中的数据,会发生什么?)为了简单和高效,C 不支持这一点。

希望这可以帮助!

于 2013-10-03T00:21:03.667 回答
2

标准 C 不允许在另一个函数中定义一个函数。一些编译器支持将此作为扩展名,但名称必须不同,否则按名称调用函数将是模棱两可的。

main是程序的入口点。根据定义,程序只有一个入口点:它是在程序启动时(经过一些初始化)执行的函数,并且在该函数返回时(经过一些清理之后)程序退出。

于 2013-10-03T00:20:52.717 回答
0

因为程序必须有一个起点。被命名为“main”的函数是 C 中的默认起点。这就是为什么“main”作为名称被 C 保留,并且您不能拥有另一个名为“main”的函数。

于 2013-10-03T01:00:54.247 回答