c - 为什么我们在使用 C 时需要在 main 中使用 return 语句

标签 c

为什么我们在 C 语言的 main 中需要一个返回函数? 因为当我尝试在 main 中的 return 语句之后编写语句时,main 之后的语句没有被执行,但它应该在控制从调用函数返回到 main 之后执行,它应该执行 return 语句之后的语句,直到遇到右括号吗?

示例:

int main()
 {
   printf("Hello World");
   return 0;
   printf("hi"); // This does not gets executed
 }

最佳答案

Why do we need a return function in main in C?

main() 的返回值返回到“系统”并解释为进程退出代码,例如可以在 shell 脚本和批处理文件中使用。以 Windows 为例:

> myprogram
Hello World
> echo myprogram returned %errorlevel%
myprogram returned 0

[...] it should execute the statement after the return statement till a closing bracket is encountered?

没有。当遇到return(线索就在名称中!)或在右大括号处时,函数就会返回 - 以先发生者为准。 return 语句可以出现在函数中的任何位置,并且一个函数可以有多个 return 语句。如果在返回之前遇到右大括号,则这是一个隐式返回,对于非void函数来说,如果调用者尝试使用返回值,则这是未定义的行为。

当您从 main() 返回时,控制权将返回到系统,并且在托管环境中终止进程,操作系统恢复资源、关闭文件等。

关于c - 为什么我们在使用 C 时需要在 main 中使用 return 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58779710/

相关文章:

c - NASM,指数宏程序还是子程序?

C程序打印100到1000之间的数字,数字之和为20

c - 'unary *' 的类型参数无效(有 'int' )

c - 使用 arm-none-eabi-ar 将库相互链接时如何避免 undefined symbol

CBMC 是独立的吗?

C 从字符到函数名

c - pcap_dispatch/将参数传递给回调函数

c - YACC/LEX 从 C 文件调用解析器

c++ - 如果条件为 TRUE,则在 do while 循环中发布增量(最好的方法?)

c - 如何将 IplImage 转换为 char 数组