main()函数与C中的其他函数相比如何?

ste*_*lar 1 c program-entry-point function

该文档是:

在C语言中,“主”函数与每个函数一样,具有返回类型(在某些情况下通过参数接受输入)。唯一的区别是,当用户运行程序时,操作系统会“调用”主要功能。因此,主要功能始终是程序启动时执行的第一个代码。

但是当我跑步时

int main() {
    printf("%d", square(3));
    return 0;
}

int square(int n) {
    int sq = n * n;
    return sq;
}

Run Code Online (Sandbox Code Playgroud)

程序将输出9.那么main()函数是否仅在所有其他函数之后才执行,或者它是否以其他特殊方式执行?

Bar*_*mar 6

顺序是这样的:

  1. 操作系统调用 main()
  2. main()来电square(3)
  3. square(3)计算结果9并返回。
  4. main() 来电 printf("%d", 9)
  5. printf()9在终端上打印并返回打印的字符数(1)。
  6. main() 向操作系统返回0。

  • 在讨论函数调用的顺序时,我认为这不是很重要的细节。 (2认同)

Ded*_*tor 5

定义和调用之间有区别。

main()是运行时直接调用以执行程序的一个函数。在全局变量或某些其他特殊情况下,可能会在初始化程序中调用其他一些方法,但是让我们忽略它们,尤其是因为它们与您的情况无关。

而且所有其他人都从那里直接或间接地被呼叫。或它们仅仅是死代码。

main()由于C99:return 0;存在隐含的另一个区别。

顺便说一句,提高警告级别,所有在未声明之前/未声明的函数都是错误。