c51指针请教

[复制链接]
3038|10
 楼主| xaccy 发表于 2007-6-10 00:36 | 显示全部楼层 |阅读模式
uchar&nbsp;xdata&nbsp;prnt_buf[5][22];<br /><br />void&nbsp;print_table(void)<br /><br />{<br />uint&nbsp;i,j;<br />uchar&nbsp;&nbsp;*ptr1;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ptr1=prnt_buf;&nbsp;<br />&nbsp;&nbsp;&nbsp;<br />}<br />编译后出现如下警告,请指教。谢谢!<br /><br />warning&nbsp;C182:&nbsp;pointer&nbsp;to&nbsp;different&nbsp;objects
小研究 发表于 2007-6-10 12:27 | 显示全部楼层

你定义的是二维数组

如果想指向该数组的话,应该用一个指针的指针吧?<br />uchar&nbsp;&nbsp;**ptr1;&nbsp;<br />再试试<br />
小马 发表于 2007-6-10 12:37 | 显示全部楼层

prnt_buf是一个指针的指针,同意楼上

uchar&nbsp;xdata&nbsp;**ptr1是不是更好些,速度更快些
linjing 发表于 2007-6-10 23:02 | 显示全部楼层

uchar xdata prnt_buf[5*22]; 也可

  
 楼主| xaccy 发表于 2007-6-11 11:05 | 显示全部楼层

结果是一样的

用&nbsp;**ptr1&nbsp;&nbsp;结果是一样的。按说数组变量的传递,数组名就代表数组的启始地址,函数中用指针接住就是了。在芯片中运行是可以的,只是编译时出现上述警告不知何故?&nbsp;谢谢各位!
lfc9861 发表于 2007-6-11 11:20 | 显示全部楼层

ptr1=&prnt_buf[0][0]; 把地址给确定掉

  
awey 发表于 2007-6-11 11:23 | 显示全部楼层

试试 uchar xdata *ptr1

  
computer00 发表于 2007-6-11 18:12 | 显示全部楼层

类型不符,一个是指向内部RAM的,一个是指向外部RAM的

改成<br /><br />uchar&nbsp;xdata&nbsp;&nbsp;*ptr1;<br />
yongzai 发表于 2011-5-10 11:54 | 显示全部楼层
期盼结果
bin362422 发表于 2011-5-10 14:40 | 显示全部楼层
学习中,怎么没下文了啊?期盼结果:D
kami03372 发表于 2011-5-10 15:00 | 显示全部楼层
8楼:
应该是正解。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

7

帖子

0

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