在平时项目中,我们会遇到一个函数要返回多个值的问题。
但是c语言规定一个函数只能返回一个值,也就是说我们不能用return
一个变量的方式返回多个值。
那该怎么办呢?
其实很简单,结构体轻而易举实现这个功能。
#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; }
在移植wifi的代码时,遇到了一些与下面类似的函数,这些函数中有不只一个return,这可是个新鲜的玩意儿:
int func (int b) { int a=5; if (a>b) return a; else return b; return 0; }
原来C/C++ 中,reutrn语句是这样定义的:
通过在函数中使用返回语句,返回一个值给函数,同时终止函数的调用,返回主函数。(注意:同时终止函数的调用,也就是说函数在运行到return时就会终止了。)
格式:
功能:
说明:
可以有两种办法:一是申请一个全局变量,在函数调用时对其进行处理,返回主程序时仍然可用;另一种办法是,返回一个指针,指针指向一个结构体,或者一个数组,这样就能返回多个参数了。
而指向结构体的指针,在很多情况下是很常见的。
以上为个人经验,希望能给大家一个参考,也希望大家多多支持。