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

[复制链接]
1442|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]  我知道这个不是地址, 我是把地址存放在这个数组之中。
ayb_ice 发表于 2014-5-8 16:41 | 显示全部楼层
定义成指针就行了
lanmp 发表于 2014-5-8 16:59 | 显示全部楼层
本帖最后由 lanmp 于 2014-5-8 17:00 编辑

警告写得很清楚。要去掉警告,请用强制类型转换。
(unsigned int *)(parameter[(mbuf1 << 2) + 3])
兰天白云 发表于 2014-5-10 17:33 | 显示全部楼层
同意楼上的,强制类型转换
您需要登录后才可以回帖 登录 | 注册

本版积分规则

7

主题

26

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部