浅析C语言中的变量修饰符
来源:朱老师IT充电站 发布时间:2024-04-24 分享至微信


一、修饰符类型


51单片机采用哈佛结构。内存空间编址有重叠。可以在不同总线上定义不同的变量。在KEIL C51中定义了data、idata、xdata、code几种域修饰符。这些修饰符决定了变量访问方式。

data:固定指前面0x00-0x7F的128个RAM,可以用acc直接读写,速度最快,生成的代码也最小。

idata:固定指前面0x00-0xFF的256个RAM,其中前128和data的128完全相同,只是访问的方式不同。

xdata:外部扩展RAM。

code:ROM。

二、变量定义


对变量进行声明时可以指定变量的存储类型如:uchar data xdata uchar x相等,都是在片内RAM区分配一个字节的空间。

同样对于指针变量的声明,因涉及到指针变量本身的存储位置和指针所指向的存储位置不同而进行相应的存储区类型关键字的声明。

如下一句代码,表示的是:指在RAM区分配一个指针变量(“*”号后的关键字的作用),而且这个指针本身指向xdata区(“*”前xdata关键字的作用)

三、指针变量与存储区域关系


定义如下变量:

第一种情况:是指在片内RAM分配一个指针变量(“*”号后的data关键字的作用),而且这个指针本身指向xdata区(“*”前xdata关键字的作用)。这种定义方式访问效率最高。

第二种情况:是指在idata区域分配一个指针变量,指针变量指向xdata区域。这种访问效率不如第一种。

第三种情况:是指在xdata区域分配一个指针变量,指针变量指向xdata区域。这种访问效率不如第二种。

第四种情况:这种定义方式是错误,该指针变量只能访问data区域,无法访问xdata区域

欢迎转发分享给需要的好友!


微信号:zls_it


扫描下方二维码添加充电站小助手微信,可以加入微信交流群


群内每天分享一些大厂的经典C语言、C++面试题以及知识点解析、技术话题分享、常见错误、易混淆的概念答疑等,等你来Get!!


START



[ 新闻来源:朱老师IT充电站,更多精彩资讯请下载icspec App。如对本稿件有异议,请联系微信客服specltkj]
存入云盘 收藏
举报
全部评论

暂无评论哦,快来评论一下吧!

查看更多
相关文章
热门搜索
高通进军数据中心市场 海光信息合并中科曙光 华为 台积电 中芯国际 联发科 高通 英特尔 芯片