求助unsigned char data ACC_BIT; 中间的data什么意思呢

fengxiao100100 2011-04-18 06:40:11
unsigned char data ACC_BIT; // 位运算器及 7级中间过渡栈

麻烦问一下中间的data什么意思
...全文
1351 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
PeterPan 2011-04-18
  • 打赏
  • 举报
回复 2
在Keil C里,data表示内部存储区开始的128字节,可以直接寻址,速度较快。
如果变量很多,大于128字节,有部分变量必然放在后128字节,采用间接寻址,速度稍慢。
这时,把常用的变量规定为data,可以提高执行速度。
0深水蓝0 2011-04-18
  • 打赏
  • 举报
回复
LS的非常正解,一般需要严格控制变量读取速度的时候会用。

例如变量更新速度很快,或者需要很短时间内读取或者修改的变量,一般放在data。

一般容量要求大的,但速度并没有太大要求的,一般放在xdata里面。

如果所有变量都不加这些关键字的话,编译器会自动分配,但编译器的分配方案并不一定是最好的。而且一般都不会非常合理。
chngok 2011-04-18
  • 打赏
  • 举报
回复 3
这里的关键词:data定义了变量存储的内存空间
c51中的存储类型

code :程序存储区(64KB),

data :可直接寻址的内部数据存储区(128B)

idata:不可直接寻址的内部数据存储区(256B)

bdata:可位寻址内部数据存储区(16B)

xdata:外部数据存储区(64KB)

pdata:分页的外部数据存储区

27,515

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
  • 单片机/工控社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧