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

 更新时间:2023年02月24日 09:33:14   作者:A三三  
这篇文章主要介绍了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语句。
  • 此外,有时调用一个函数,需要返回多个参数,这种情况应当如何处理呢?

可以有两种办法:一是申请一个全局变量,在函数调用时对其进行处理,返回主程序时仍然可用;另一种办法是,返回一个指针,指针指向一个结构体,或者一个数组,这样就能返回多个参数了。

而指向结构体的指针,在很多情况下是很常见的。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • C++使用map实现多进程拷贝文件的程序思路

    C++使用map实现多进程拷贝文件的程序思路

    这篇文章主要介绍了C++使用mmap实现多进程拷贝文件,通过本文给大家分享程序思路及完整代码,代码简单易懂,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-12-12
  • C语言实现分治法实例

    C语言实现分治法实例

    这篇文章主要为大家详细介绍了C语言实现分治法的实例,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-08-08
  • c++ 智能指针基础详解

    c++ 智能指针基础详解

    这篇文章主要介绍了c++ 智能指针基础的相关资料,帮助大家更好的理解和学习使用c++,感兴趣的朋友可以了解下
    2021-02-02
  • VS2019编写C程序或者CUDA程序出现“无法启动程序,系统找不到指定的文件”问题的详细解决方法

    VS2019编写C程序或者CUDA程序出现“无法启动程序,系统找不到指定的文件”问题的详细解决方法

    这篇文章主要介绍了VS2019编写C程序或者CUDA程序出现“无法启动程序,系统找不到指定的文件”问题的详细解决方法,文中通过图文的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-08-08
  • C++中main函数怎样调用类内函数

    C++中main函数怎样调用类内函数

    这篇文章主要介绍了C++中main函数怎样调用类内函数问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-08-08
  • C++通信新特性协程详细介绍

    C++通信新特性协程详细介绍

    这篇文章主要给大家分享得是C++的特性协程Coroutine,下面文章内容我们将来具体介绍什么是协程,协程得好处等知识点,需要的朋友可以参考一下
    2022-10-10
  • 详解VisualS tudio Code开发Arm嵌入式Linux应用

    详解VisualS tudio Code开发Arm嵌入式Linux应用

    本文介绍如何在 Visual Studio Code 中使用 Yocto Project 生成的 Linux SDK,并针对 Arm 处理器进行 C/C++ 应用交叉编译和调试,感兴趣的朋友跟随小编一起看看吧
    2021-04-04
  • C语言标准时间与秒单位相互转换

    C语言标准时间与秒单位相互转换

    这篇文章主要介绍了C语言标准时间与秒单位相互转换,秒单位与标准时间的转换方式,这份代码一般用在嵌入式单片机里比较多,比如:设置RTC时钟的时间,从RTC里读取秒单位时间后,需要转换成标准时间显示。下文分享需要的小伙伴可以参考一下
    2022-05-05
  • C语言实现扫雷游戏详细流程

    C语言实现扫雷游戏详细流程

    windows自带的游戏《扫雷》是陪伴了无数人的经典游戏,本文将利用C语言实现这一经典的游戏,文中的示例代码讲解详细,感兴趣的可以学习一下
    2022-05-05
  • C++中简单读写文本文件的实现方法

    C++中简单读写文本文件的实现方法

    本篇文章是对C++中简单读写文本文件的方法进行了详细的分析介绍,需要的朋友参考下
    2013-05-05

最新评论