KEIL问题请教

[复制链接]
1494|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;
shangwei4444 发表于 2014-3-7 10:43 | 显示全部楼层
直接定义 int *p;
 楼主| tianli1980 发表于 2014-3-12 22:58 | 显示全部楼层
我给P赋值的是一个地址,我定义的uchar 是指指针指向的内存块大小,这跟指针本身的大小有关系吗?
jxmzzr 发表于 2014-3-24 22:35 | 显示全部楼层
你定义的int型数据要用int型的指针来获取数据地址吧?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

482

主题

2214

帖子

11

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