伙伴云客服论坛»论坛 S区 S软件开发 查看内容

0 评论

0 收藏

分享

C语言函数多个返回值方式

目录

    函数返回多个值
      下面附上小小的demo
    函数中有多个return?C语言中一个函数可以有几个返回值?总结


函数返回多个值

在平时项目中,我们会遇到一个函数要返回多个值的问题。
但是c语言规定一个函数只能返回一个值,也就是说我们不能用return一个变量的方式返回多个值。
那该怎么办呢?
其实很简单,构造体轻而易举实现这个功能。

下面附上小小的demo

        #include<stdio.h>

        typedef struct more{//构造体
                int one;
                int two;
        }more;

        more re()
        {
                more m = {1,2};
                return m;
        }
        int main()
        {
                more m = re();
                printf("%d %d",m.one,m.two);
                return 0;
        }
函数中有多个return?C语言中一个函数可以有几个返回值?

在移植wifi的代码时,遇到了一些与下面类似的函数,这些函数中有不只一个return,这可是个新颖的玩意儿:
int func (int b)
{
   int a=5;
   if (a>b)
      return a;
   else
      return b;
 
   return  0;
}原来C/C++ 中,reutrn语句是这样定义的:
通过在函数中使用返回语句,返回一个值给函数,同时终止函数的调用,返回主函数。(注意:同时终止函数的调用,也就是说函数在运行到return时就会终止了。)
格式:   
    return (表达式); 或return 表达式;
功能:   
    (1)计算表达式的值,将表达式的值返回给函数。 (2)从被调用的函数返回主调函数。
说明:
    (1)返回值类型应和函数类型一致,不一致将返回值自动转换成函数类型。 (2)函数中可以有多条返回语句,这时一般与if语句联用,执行到哪一条返回语句,哪条返回语句起作用。  (3)函数中无return语句,执行至函数体结尾时返回,此时将返回一个不确定的值给函数。 (4)假设只需要从函数中返回,而不需带回值,使用不带表达式的return语句。此外,有时调用一个函数,需要返回多个参数,这种情况应当如何处置呢?
可以有两种办法:一是申请一个全局变量,在函数调用时对其停止处置,返回主程序时仍然可用;另一种办法是,返回一个指针,指针指向一个构造体,或者一个数组,这样就能返回多个参数了。
而指向构造体的指针,在很多情况下是很常见的。

总结

以上为个人经历,希望能给大家一个参考,也希望大家多多支持网站。

回复

举报 使用道具

全部回复
暂无回帖,快来参与回复吧
本版积分规则 高级模式
B Color Image Link Quote Code Smilies

萌晓许
注册会员
主题 22
回复 14
粉丝 0
|网站地图
快速回复 返回顶部 返回列表