c - 为什么我们在使用 C 时需要在 main 中使用 return 语句
问题描述
为什么我们在 C 的 main 中需要一个返回函数?因为当我尝试在 main 中的 return 语句之后编写语句时,main 之后的语句没有被执行,但它应该在控制从调用函数返回到 main 之后执行,它应该在 return 语句之后执行语句直到 a遇到右括号?
例子:
int main()
{
printf("Hello World");
return 0;
printf("hi"); // This does not gets executed
}
解决方案
为什么我们需要 C 的 main 中的返回函数?
from 的返回值main()
返回到“系统”并解释为进程退出代码,例如可以在 shell 脚本和批处理文件中使用。例如在 Windows 中:
> myprogram
Hello World
> echo myprogram returned %errorlevel%
myprogram returned 0
[...] 它应该在 return 语句之后执行语句,直到遇到右括号?
否。当return
遇到 a 时(线索在名称中!)或在右大括号处 - 以先发生者为准,函数会返回。return 语句可以出现在函数中的任何位置,并且一个函数可能有多个 return 语句。如果在 a 之前遇到右大括号return
,那么这是一个隐式返回,如果调用者尝试使用返回值,则对于非 void 函数是未定义的行为。
当您从main()
控制中返回时,系统会返回到系统,并且在终止进程的托管环境中,操作系统会恢复资源、关闭文件等。
推荐阅读
- c# - 嵌套值列表 XML Linq C#
- c++ - 是否实现了 std::copy 以使用多个线程?
- reactjs - 短绒发誓缺乏属性
- angular - 边缘到边缘导航问题
- reactjs - 错误:无法对未安装的组件执行 React 状态更新。这是一个无操作,但它表明您的应用程序中存在内存泄漏
- javascript - 悬停效果不适用于变换:rotateY
- c++ - 解包元组可变参数模板参数
- cluster-analysis - 如何在 dbscan 或 hdbscan 集群中查找热门术语?
- spring - 使用 AsyncItemProcessor 和 AsyncItemWriter 缩放 Spring Batch
- amazon-web-services - 如何在 aws ec2 上增加 ebs 分区卷大小?