[其它应用] 这几个区别

[复制链接]
536|10
 楼主| happy_10 发表于 2019-8-18 12:37 | 显示全部楼层 |阅读模式

在KEIL定义不加储存类型DATA
如:uchar  i;      i是储存在RAM的低128字节中吗?
也就是uchar  i; 与uchar data i;是没有区别的吗
bqyj 发表于 2019-8-18 12:40 | 显示全部楼层
不一样,uchar data i 强制在i变数在data区,而uchar i,则没有强制变量的存储位置..
wenfen 发表于 2019-8-18 12:42 | 显示全部楼层
KEIL定义不加储存类型的变量默认在 DATA 区.
tian111 发表于 2019-8-18 12:47 | 显示全部楼层
可以用编译命令更改
tian111 发表于 2019-8-18 12:50 | 显示全部楼层
对,#pragma SMALL(COMPACT,LARGE)更改, 要想更详细的, 看编译手册吧
songqian17 发表于 2019-8-18 12:53 | 显示全部楼层
uchar  i;如果你选择small, 就在data,如果选择compact就在pData, 如果选择large,就在xdata
gongche 发表于 2019-8-18 12:56 | 显示全部楼层
默认就在data区的。
huanghuac 发表于 2019-8-18 12:59 | 显示全部楼层
手册里说的详细
bqyj 发表于 2019-8-18 13:08 | 显示全部楼层
加data一定在内部128里,不加的话要看编译选项和程序的大小有关系。默认在data区的说法,会出现这种情况,但不是全部都那样。
wenfen 发表于 2019-8-18 13:11 | 显示全部楼层
取决于当前的编译模式
在small模式下,缺省的变量定位在data空间
在compact模式下,缺省的变量定位在pdata空间
在large模式下,缺省的变量定位在xdata空间
 楼主| happy_10 发表于 2019-8-18 13:14 | 显示全部楼层
嗯,预料中的结果,先结贴吧,多谢大家啦
您需要登录后才可以回帖 登录 | 注册

本版积分规则

744

主题

7973

帖子

6

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