KEIL uVion3 编译错误问题

[复制链接]
4361|4
 楼主| 绿色的瓶盖 发表于 2009-7-10 13:55 | 显示全部楼层 |阅读模式
宏定义一个地址:<br />#define&nbsp;IAP_FLASH&nbsp;0x00007000<br />………………<br />定义一个指针变量&nbsp;:<br />uint32&nbsp;*p;<br /><br />进行如下赋值编译器提示错误:<br />p=IAP_FLASH;<br /><br />错误提示为:<br />Uart0Demo.c(420):&nbsp;error:&nbsp;&nbsp;#513:&nbsp;a&nbsp;value&nbsp;of&nbsp;type&nbsp;&quot;int&quot;&nbsp;cannot&nbsp;be&nbsp;assigned&nbsp;to&nbsp;an&nbsp;entity&nbsp;of&nbsp;type&nbsp;&quot;unsigned&nbsp;int&nbsp;*&quot;<br /><br />根据提示应该是说IAP_FLASH是整形数据,不能赋值给unsigned&nbsp;int&nbsp;*类型。<br />疑问:1:ARM7的地址是int类型而不是unsigned&nbsp;int类型?<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2:如果要纠正,应该怎么改?&nbsp;强制类型转换&nbsp;uint32&nbsp;*?<br />&nbsp;&nbsp;&nbsp;&nbsp;恳请哪位大侠指点,初学ARM7,是个新人,多多指教。<br /><br />
fishqiang 发表于 2009-7-22 19:00 | 显示全部楼层

顶一下

p=&nbsp;(unsigned&nbsp;int*)IAP_FLASH;这样试一下。
lonely8122 发表于 2009-7-23 08:33 | 显示全部楼层

#define IAP_FLASH (uint32 *)0x00007000

  
小野狼 发表于 2009-7-27 09:10 | 显示全部楼层

~

需要把IAP_FLASH强制转换成指针类型,p&nbsp;=&nbsp;(unsigned&nbsp;int&nbsp;*)IAP_FLASH;<br /><br />p是指针类型,IAP_FLASH是数据,所以会出错。
古道热肠 发表于 2009-7-27 12:00 | 显示全部楼层

肯定不能直接赋,违反了C语言的基本规则

MDK中,unsinged&nbsp;int是32位,只有Short关键指定的才是16位的,这一点也要时刻引起注意。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

43

主题

97

帖子

0

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