打印
[开发工具]

想用指针进行操作遇到了警告

[复制链接]
1429|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
Maker_Chan|  楼主 | 2015-8-28 22:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
for_Int.c:31: warning: (357) illegal conversion of integer to pointer.  
我想用一个指针FP进行操作。
先是在头文件里定义某些寄存器的地址:
比如 :
#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

使用特权

评论回复
5
StevenLau2008| | 2015-9-7 10:49 | 只看该作者
Microchip:
TEL:13148736025
QQ:359920019

使用特权

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

本版积分规则

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

16

主题

40

帖子

0

粉丝