2491|1

69

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

初学c51,xdata的相关问题. [复制链接]

初学c51,对xdata的地址分配不是很了解,比如我定义了以下几个变量。
unsigned char xdata        b1;
unsigned char xdata        b2;
unsigned int xdata      b3;
unsigned char xdata     *p;
p = 0xa001;
1、请问这些变量的地址空间分配在外部ram的什么位置 ?
2、keil c的语法p = 0xa001;是不是把外部ram的地址0xa001赋给指针p,p++的地址是不是0xa002
3、p[0xa002] = 1;这种写法是不是将地址0xa002赋值1
初学keil,请大虾们给我扫盲。谢谢

最新回复

unsigned char xdata b1; unsigned char xdata b2; unsigned int xdata      b3; //这几个没问题,直接声名变量的存放位置... unsigned char xdata     *p; //有点意思了,它表达的是,指向XDATA区域的指针,而指针变量自身存放在什么地方没有说明,那就交给编译器. unsigned char * xdata p;//这样表达的是:指向CHAR型的通用指针,这个指针存放在XDATA区中,但是,它指向什么区域没有声名,它是一个通用指针,占三个字节 第二个没有问题 第三一个,是C中的[]运算符,这个运算符要的格式是:首地址[偏移量] 表达的意思是:首地址+偏移量得到的地址空间上对应类型的访问. 然后,我不大同意LZ的说法.自己理解一下下. 指针是一个C程序员与生具来的特性.LZ加油...  详情 回复 发表于 2007-10-4 11:30
点赞 关注

回复
举报

70

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
unsigned char xdata b1;
unsigned char xdata b2;
unsigned int xdata      b3;

//这几个没问题,直接声名变量的存放位置...

unsigned char xdata     *p; //有点意思了,它表达的是,指向XDATA区域的指针,而指针变量自身存放在什么地方没有说明,那就交给编译器.
unsigned char * xdata p;//这样表达的是:指向CHAR型的通用指针,这个指针存放在XDATA区中,但是,它指向什么区域没有声名,它是一个通用指针,占三个字节

第二个没有问题

第三一个,是C中的[]运算符,这个运算符要的格式是:首地址[偏移量] 表达的意思是:首地址+偏移量得到的地址空间上对应类型的访问.
然后,我不大同意LZ的说法.自己理解一下下.

指针是一个C程序员与生具来的特性.LZ加油...
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表