打印

c语言怎样实现在子函数中把读出的数据放在子函数中的参数中

[复制链接]
1569|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
醉心369|  楼主 | 2014-1-14 10:49 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
李富贵| | 2014-1-14 10:55 | 只看该作者
放*poutdata里面就行

使用特权

评论回复
板凳
ayb_ice| | 2014-1-14 13:24 | 只看该作者
void readdata(long unsigned int addr,char *poutdata)
{
        poutdata[0] = 1;
        poutdata[1] = 2;
        poutdata[2] = 3;
        poutdata[3] = 4;

}

使用特权

评论回复
地板
醉心369|  楼主 | 2014-1-14 14:03 | 只看该作者
ayb_ice 发表于 2014-1-14 13:24
void readdata(long unsigned int addr,char *poutdata)
{
        poutdata[0] = 1;

传参的指针变量的不是局部变量吗,在以后的应用中能直接使用poutdata吗

使用特权

评论回复
5
znmcu| | 2014-1-14 14:04 | 只看该作者
1、通过外部全局变量
2、通过参数中的指针

使用特权

评论回复
6
ayb_ice| | 2014-1-14 14:14 | 只看该作者
这个只是指针,指针是局部变量

但指针指向的空间是上一函数分配的,是有效的

使用特权

评论回复
7
dota_yy| | 2014-1-14 15:20 | 只看该作者

使用特权

评论回复
8
dirtwillfly| | 2014-1-14 21:52 | 只看该作者
使用的是指针传递变量的地址

使用特权

评论回复
9
sedatefire| | 2014-1-14 22:45 | 只看该作者
void readdata(long unsigned int addr,char *poutdata)
{
     memcpy(poutdata, (void*)addr, 4);
}
这是你想要的吗?
注意,这代码不能在C51中搞哦
C51,得这样
memcpy(poutdata, (void code *)addr, 4);
memcpy(poutdata, (void xdata *)addr, 4);
memcpy(poutdata, (void data *)addr, 4);
看你自己的需求了

使用特权

评论回复
10
zwz7219| | 2014-1-15 09:01 | 只看该作者
希望是你需要的

void ReadData(unsigned int Addr,char *pOutData, char Lenth)
{
    for (; Lenth > 0; Lenth--)
    {
        *pOutData++ = EepromRead(Addr++);
    }
}

使用特权

评论回复
11
明月小厨| | 2014-1-15 12:59 | 只看该作者
某地址读出的4个byte数据;
这4个数据应该先定义为一个数组;然后你得到数组的首地址,就可以直接处理它们了。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

60

主题

283

帖子

2

粉丝