| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1049 人关注过本帖
标题:关于函数返回值的问题!
取消只看楼主 加入收藏
Maximilian
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2014-11-12
结帖率:75%
收藏
已结贴  问题点数:20 回复次数:8 
关于函数返回值的问题!
在一个函数里,有一些值需要用特定条件判断,满足条件的就用return作为返回值返回给函数,但是c语言中函数返回值只能return回一个值。所以如果想要返回多个值的话,该用结构体还是什么?
搜索更多相关主题的帖子: return 结构体 c语言 
2014-11-29 21:55
Maximilian
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2014-11-12
收藏
得分:0 
回复 3 楼 yahwei
谢谢你的回复,不过我想问一下,如果我这样写的话,确实是不能返回一个数组,但是怎么用结构体对数组buf进行封装,然后return一个结构体呢?谢谢!
程序代码:

 unsigned int func(void)

 {
   unsigned int i;
   unsigned int j=0;
   unsigned int buf[2];
   for(i=0;i<10;i++)  
   {
     if(i==1 || i==3)
      
      i = buf[j];
      j++;                  
   } 
   return buf;    

 }
2014-11-30 02:36
Maximilian
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2014-11-12
收藏
得分:0 
回复 6 楼 TonyDeng
非常感谢版主这么晚了还回复我的帖子!!说得非常的详细!!版主我现在只需要返回满足条件的地址,不需要用1和0来表示状态,所以应该不会这么麻烦了,如果用我写的下边的程序,然后用结构体对这个数组buf进行处理然后进行返回呢?
程序代码:
unsigned int func(void)
{
   unsigned int i;
   unsigned int j=0;
   unsigned int buf[2];
   for(i=0;i<10;i++)  
   {
     if(i==1 || i==3)
      
      i = buf[j];
      j++;                  
   } 
   return buf;    
}
2014-11-30 05:22
Maximilian
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2014-11-12
收藏
得分:0 
回复 7 楼 TonyDeng
我以为这个问题应该比较常见的,因为如果做机器人编程,人们想让机器人知道都有哪些传感器已经与自己连接,然后把已连接的传感器地址,作为函数的返回值为其他函数所用,但是实际情况是,一个机器人肯定不止连接一个传感器,所以返回值也不会是一个值,而是多个值,这是我的思路

[ 本帖最后由 Maximilian 于 2014-11-30 05:29 编辑 ]
2014-11-30 05:27
Maximilian
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2014-11-12
收藏
得分:0 
回复 10 楼 TonyDeng
如果一开始用结构体struct包含所有地址,然后进行比较和判断,那样可以返回结构体?
2014-11-30 05:36
Maximilian
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2014-11-12
收藏
得分:0 
回复 14 楼 TonyDeng
我其实一直都想用结构体,只不过接触c语言时间不长,想法是有,但是可惜知识比较匮乏,真的非常感谢版主!!并且还是在这么晚的时间

[ 本帖最后由 Maximilian 于 2014-11-30 05:40 编辑 ]
2014-11-30 05:39
Maximilian
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2014-11-12
收藏
得分:0 
回复 17 楼 TonyDeng
非常感谢版主!!我自己会好好琢磨的!
2014-11-30 05:43
Maximilian
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2014-11-12
收藏
得分:0 
回复 19 楼 黄博森
hi,你能具体讲讲你的思路吗
2014-11-30 14:39
Maximilian
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2014-11-12
收藏
得分:0 
回复 17 楼 TonyDeng
版主您好!我使用结构体作为返回值,但是还是出错,这是什么问题呢?我用C语言。谢谢版主
程序代码:
#include <stdio.h>

struct Address
{
       int x[2];
       
       
} ;

struct Address Sensor(void)
{
   int i;
   int j=0;
   struct Address point;

   for(i=0;i<10;i++)
   {
   if(i==2||i==4)
   {
      point.x[j]=i;                 
        j++;
    } 
   }
     return point;            
}

int main(void)
{

 while(1)

 {   
   printf("%d,%d\n",Sensor());     

 }
}

2014-12-01 22:55
快速回复:关于函数返回值的问题!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.025908 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved