[开发工具] 想用指针进行操作遇到了警告

[复制链接]
 楼主| Maker_Chan 发表于 2015-8-28 22:12 | 显示全部楼层 |阅读模式
for_Int.c:31: warning: (357) illegal conversion of integer to pointer.  
我想用一个指针FP进行操作。
先是在头文件里定义某些寄存器的地址:
比如 :
  1. #define RXB0D_BaseAdr  0xf66
0xf66是一个寄存器RXB0D0的地址。
然后 FP = RXB0D_BaseAdr; 就会出现上面这个警告。  (我是向通过*FP获取寄存器RXB0D0及其后面连续的寄存器里的值)
编译器是 XC8
请问这是为什么呢?


yklstudent 发表于 2015-8-29 00:16 | 显示全部楼层
*((uint8_t*)0xF66) = 0x55;
不用太在意warn警告
diweo 发表于 2015-8-30 19:25 | 显示全部楼层
指针(地址)和整数还是有区别的..

假设:
int *FP;
那么FP=0x0F66;就隐式的把一个整数转换成指针了,编译器不允许这么做,所以illegal conversion of integer to pointer. 。

你必须显式的进行强制转换
FP=(int*)0x0F66;
 楼主| Maker_Chan 发表于 2015-9-4 08:59 | 显示全部楼层
diweo 发表于 2015-8-30 19:25
指针(地址)和整数还是有区别的..

假设:

原来如此,谢谢啦:lol
StevenLau2008 发表于 2015-9-7 10:49 | 显示全部楼层
Microchip:
TEL:13148736025
QQ:359920019
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:主人很懒思密达,签名都不写

16

主题

40

帖子

0

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