打印

KEIL问题请教

[复制链接]
1230|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
tianli1980|  楼主 | 2014-3-5 15:25 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
同样的程序在wintc就能通过正常运行,不知道是不是编译器哪里有限制,用的STM32f103的片子。用KEIL写一个小程序,大家帮忙看看。


int a = 0x0001;
unsigned char *p;
p = &a;
结果最后一句编译不过去,提示不能赋值
main.c(131): error:  #513: a value of type "int *" cannot be assigned to an entity of type "un signed char *"

沙发
一清如水| | 2014-3-6 12:58 | 只看该作者
强制转换试试,你这种写法,不提倡

使用特权

评论回复
板凳
拿起书本| | 2014-3-6 14:51 | 只看该作者
不同环境的编译器对运行安全的检查级别和要求不一样。

使用特权

评论回复
地板
huzi2099| | 2014-3-6 15:26 | 只看该作者
p = &a;你把一个int型指针附值给char型指针类型不匹配
int型在不同机器上是不一样的.
p=(unsigned char *)&a;

使用特权

评论回复
5
shangwei4444| | 2014-3-7 10:43 | 只看该作者
直接定义 int *p;

使用特权

评论回复
6
tianli1980|  楼主 | 2014-3-12 22:58 | 只看该作者
我给P赋值的是一个地址,我定义的uchar 是指指针指向的内存块大小,这跟指针本身的大小有关系吗?

使用特权

评论回复
7
jxmzzr| | 2014-3-24 22:35 | 只看该作者
你定义的int型数据要用int型的指针来获取数据地址吧?

使用特权

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

本版积分规则

482

主题

2214

帖子

11

粉丝