首页 > 代码库 > C函数实现返回多个值的方法
C函数实现返回多个值的方法
C语言中,一个函数最多只能实现一个返回值。
[cpp] view plain copy
- int func (int b)
- {
- int a=5;
- if (a>b)
- return a;
- else
- return b;
- return 0;
- }
通过在函数中使用返回语句,返回一个值给函数,同时终止函数的调用,返回主函数。
而在实际操作过程中,我们需要调用一个函数,实现得出几个不同结果的情况。
(1)函数返回一个数组,然后再解析数组中的每个数值的意思。
(2)指针作为参数,承载所要输出的值。
[cpp] view plain copy
- #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++有许多这种方法的应用:
[cpp] view plain copy
- #include <stdlib.h>
- long strtol( const char *start, char **end, int base );
**end是指向指针的指针
功能:函数返回带符号的字符串start所表示的长整型数。参数base代表采用的进制方式。指针end 指向start所表示的整型数之后的部分。如果返回值无法用长整型表示,函数则返回LONG_MAX或LONG_MIN. 错误发生时,返回零。
[cpp] view plain copy
- #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”
http://blog.csdn.net/callinglove/article/details/7840841
C函数实现返回多个值的方法
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。