单片机变量存储问题

本文详细介绍了单片机C语言中变量的存储类型和模式,包括auto、register、static、extern四种存储器类型以及Small、Compact、Large三种数据存储模式。还讨论了一般指针和基于存储器的指针的区别,以及如何定义和转换指针。此外,文中提到了sfr、sfr16和sbit对特殊功能寄存器和可位寻址对象的定义方法。最后,解释了在Keil中查看不同存储器状态的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

所提到变量就是一种在程序执行过程中其值能不断变化的量。要在程序中使用变量必须先用标识符作为变量名,并指出所用的数据类型和存储模式,这样编译系统才能为变量分配相应的存储空间。
定义一个变量的格式如下: [存储种类] 数据类型 [存储器类型] 变量名表
在定义格式中除了数据类型和变量名表是必要的,其它都是可选项。
存储种类:自动(auto),外部(extern),静态(static)和寄存器(register),共四种,缺省类型为自动(auto)。

存储器类型的说明就是指定该变量在单片机c语言硬件系统中所使用的存储区域,并在编译时准确的定位。
存储器类型
data:直接访问内部数据存储器(128字节),访问速度最快
bdata:可位寻址内部数据存储器(16字节),允许位与字节混合访问
idata:间接访问内部数据存储器(256字节),允许访问全部内部地址
pdata:分页访问外部数据存储器(256字节),用MOVX @Ri指令访问
xdata:外部数据存储器(64KB),用MOVX @DPTR指令访问
code:程序存储器(64KB),用MOVC @A+DPTR指令访问

如果省略存储器类型,系统则会按编译模式SMALL,COMPACT或LARGE所

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值