有人可以解释一下内部发生的事情,除了main
是起点,我们不能有两个起点。
int main()
{
int main()
{
return 0;
}
return 0;
}
答案 0 :(得分:3)
这不是合法的C代码 - 在C中,函数不能在彼此内部定义。
没有根本原因你无法这样做,但是实现这样的功能要么会使激活记录布局复杂化并且会影响效率(因为关闭等因素)或者引入了内存的潜力错误(如果你返回一个指向另一个函数内部函数的指针,而内部函数引用外部函数中的数据,会发生什么?)为了简单和高效,C只是不支持这个。
希望这有帮助!
答案 1 :(得分:2)
标准C不允许在另一个函数内定义函数。有些编译器支持这个作为扩展,但名称必须不同,否则按名称调用函数将是不明确的。
main
是该计划的切入点。根据定义,程序有一个入口点:它是程序启动时(在初始化之后)执行的函数,当该函数返回时(在一些清理之后)程序退出。
答案 2 :(得分:0)
因为程序必须有一个起点。名为'main'的函数是C中的默认起点。这就是为什么'main'作为名称由C保留,而你不能有另一个名为'main'的函数。