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