【发布时间】:2019-12-22 02:05:46
【问题描述】:
文档是:
在 C 中,“main”函数与每个函数都被视为相同,它具有返回类型(并且在某些情况下通过参数接受输入)。唯一的区别是主函数是在用户运行程序时被操作系统“调用”的。因此,main 函数始终是程序启动时执行的第一个代码。
但是当我跑步时
int main() {
printf("%d", square(3));
return 0;
}
int square(int n) {
int sq = n * n;
return sq;
}
程序打印 9。 那么 main() 函数是仅在所有其他函数之后才执行,还是以不同的方式特殊?
【问题讨论】:
-
main被首先调用,并且正在调用其他函数。所以最终在main终止之前被调用的函数terminate。 -
什么“所有其他功能”?唯一自动调用的函数是
main。 -
说 main 被称为“第一”是一种误导。操作系统只调用过 main 。所有其他函数永远不会被调用,除非它们被 main() 调用,或者被 main() 调用的某个函数等调用。
-
我不确定引用的来源(当然不是 C 语言标准),但它似乎相当准确,而且似乎也解决了这个问题。那么你真正想知道什么,和/或你观察到的行为让你质疑引用的描述是什么?
-
如果你想象 OP 是 Python 用户第一次接触编译语言,这个问题就更有意义了