首页 > 后端开发 > C++ > `main()` 真的是 C 程序中执行的第一个代码吗?

`main()` 真的是 C 程序中执行的第一个代码吗?

Mary-Kate Olsen
发布: 2024-12-07 05:33:15
原创
916 人浏览过

Is `main()` Really the First Code Executed in a C   Program?

Main() 真的是 C 程序的启动吗?

C 标准将 main() 定义为 C 程序的唯一起点程序:“程序应包含一个名为 main 的全局函数,它是程序的指定开始。”

但是,代码下面似乎与这个定义相矛盾:

int square(int i) { return i*i; }
int user_main()
{ 
    for ( int i = 0 ; i < 10 ; ++i )
           std::cout << square(i) << endl;
    return 0;
}
int main_ret= user_main();
int main() 
{
        return main_ret;
}
登录后复制

令人惊讶的是,这段代码在进入 main() 之前执行了 user_main() 函数,而 main() 应该是初始执行点。此外,代码编译时不会出现错误或警告。

定义程序的“开始”

正确解释术语“程序的开始”至关重要。标准将开始定义为程序被认为开始的点,不一定是在第一个代码执行时。

在此示例中,程序以 main() 开始,但这并不意味着没有代码提前执行。实际上,大量代码通常在 main() 之前执行,尤其是在初始化期间。

标准合规性

尽管代码的执行顺序不寻常,但它完全遵循标准。根据定义,程序的开始是main(),尽管user_main()执行得更早。执行顺序不会改变程序的起始被定义为 main() 函数的事实。

因此,给定的代码是符合标准的,并且它不会使标准对开始的定义无效。程序作为 main()。

以上是`main()` 真的是 C 程序中执行的第一个代码吗?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板