首页 > 手机 > 配件 > 函数返回值return,c语言return

函数返回值return,c语言return

来源:整理 时间:2022-04-02 14:16:07 编辑:华为40 手机版

return在C语言中不是必须的。C语言中的函数定义分为函数入口和函数出口。

C语言中写return 0;是不是都可以省略?

C语言中写return 0;是不是都可以省略

看情况。return在C语言中不是必须的。C语言中的函数定义分为函数入口和函数出口。当有入口参数或者出口参数时,需要说明参数的数据类型。如定义一个延时函数,入口参数为延时时间,延时后不需要返回参数。因此可以定义如下:void delayms(unsigned int T){...}void代表不需要返回值,也就是不需要使用return。

unsigned int T代表入口参数。以下四个代码都能正确运行#include main(){double grade[200];double sum,avg,temp;int count,i,n;i=0;count=0;sum=0;printf("请依次输入每个同学的成绩,输入-1结束n");scanf("%lf。

既然C语言函数的局部变量会被释放,那为什么函数还可以把它return返回呢?

既然C语言函数的局部变量会被释放,那为什么函数还可以把它return返回呢

看了底下兄弟的答复,只能说答对了一半。真正的原因在于ABI(应用程序二进制接口)。ABI定义了与系统交互的细节:如数据类型、大小和对齐;调用约定(控制函数的参数的传递方向、可变长度处理、堆栈清理主体以及如何接受返回值等);系统调用的编码和一个应用如何向操作系统进行系统调用;以及在一个完整的操作系统ABI中,目标文件的二进制格式、程序库等等。

一个完整的ABI,像Intel二进制兼容标准 (iBCS),允许支持它的操作系统上的程序不经修改在其他支持此ABI的操作体统上运行。其他的 ABI 标准化细节还包括 C 名称修饰 ,和同一个平台上的编译器之间的调用约定,但是不包括跨平台的兼容性。至于底下兄弟所说的EAX保存返回值,这个只是X86的ABI规范,在PowerPC等其他CPU架构平台,实现是不一样的!——PowerPC下,返回值是保存在R3寄存器中的。

文章TAG:return返回值函数语言

最近更新