C函数实现返回多个值的方法

C语言中,一个函数最多只能实现一个返回值。

int func (int b)  
{  
   int a=5;  
   if (a>b)  
      return a;  
   else  
      return b;  
  
   return  0;  
}  


通过在函数中使用返回语句,返回一个值给函数,同时终止函数的调用,返回主函数。

而在实际操作过程中,我们需要调用一个函数,实现得出几个不同结果的情况。

(1)函数返回一个数组,然后再解析数组中的每个数值的意思。

(2)指针作为参数,承载所要输出的值。



#include<stdio.h>

#define IN
#define OUT

int volume_func(IN int length,IN int width,IN int heigh,OUT int *area_pr)
{
	*area_pr = 2 * (length*width + width*heigh + heigh*length) ;
	return (length*width*heigh);
}
int main(int argc,char *argv[])
{
	
	int x=2,y=3,z=4 ;
	int area ;
	int volume = volume_func(x,y,z,&area);
	printf("volume:%d,area:%d\n",volume,area);
	
	return 0 ;
}

在这里调用一次函数得到来个值,即area和volume。注意函数中形式。

意外收获:定义宏IN,OUT来说明每个参数是输入参数还是输出参数,形同硬件的应用。


在VC++有许多这种方法的应用:

#include <stdlib.h>
long strtol( const char *start, char **end, int base );
**end是指向指针的指针

功能:函数返回带符号的字符串start所表示的长整型数。参数base代表采用的进制方式。指针end 指向start所表示的整型数之后的部分。如果返回值无法用长整型表示,函数则返回LONG_MAXLONG_MIN. 错误发生时,返回零。

#include<stdio.h>
#include<stdlib.h>

int main()
{
	char* p = NULL;
	long n3 = strtol("129gg", &p, 8); 	// n3 = 10
	printf("%d\n%s\n",n3,p);

	return 0;
}
在这里将“129gg”中数字认为是八进制,则012,十进制输出为10,p指向“9gg”





  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

callinglove

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值