打印

请指点:如何将数据转成地址

[复制链接]
1160|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
_nancy|  楼主 | 2014-5-6 11:36 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
使用PIC , 将一组数据及地址存放在ROM中, 将地址数据读取时, 提示warning: assignment makes pointer from integer without a cast

程式拮取如下:

unsigned int         *buf1;

const unsigned int parameter[] = {
        3,        0,        2,        &VoltagePara,
        2,            0,            2,            &FreqPara,
        2,            0,            2,            &dummy,
        2,            0,            2,            &dummy,
        2,            0,            2,            &dummy,
        2,            0,            2,            &dummy
}

buf1 = parameter[(mbuf1 << 2) + 3];          // 读取地址,会提warning

*buf1 = mbuf2;


如何修改可以将异常去掉??
沙发
zhimagod| | 2014-5-6 11:42 | 只看该作者
const unsigned int         *buf1;

使用特权

评论回复
板凳
yewuyi| | 2014-5-7 09:38 | 只看该作者
小朋友,parameter[(mbuf1 << 2) + 3],这个不是地址,这个是常量数组某一个元素的数值。

如要取地址,请使用取地址符号,并且也要定义为指针常量。

使用特权

评论回复
地板
_nancy|  楼主 | 2014-5-8 13:59 | 只看该作者
版主:parameter[(mbuf1 << 2) + 3]  我知道这个不是地址, 我是把地址存放在这个数组之中。

使用特权

评论回复
5
ayb_ice| | 2014-5-8 16:41 | 只看该作者
定义成指针就行了

使用特权

评论回复
6
lanmp| | 2014-5-8 16:59 | 只看该作者
本帖最后由 lanmp 于 2014-5-8 17:00 编辑

警告写得很清楚。要去掉警告,请用强制类型转换。
(unsigned int *)(parameter[(mbuf1 << 2) + 3])

使用特权

评论回复
7
兰天白云| | 2014-5-10 17:33 | 只看该作者
同意楼上的,强制类型转换

使用特权

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

本版积分规则

7

主题

26

帖子

0

粉丝