C51中的变量定义
(2009-11-21 10:28:45)
标签:
杂谈 |
C51定义一个变量的格式如下:
【存储种类】数据类型【存储器类型】变量名称
存储种类
存储种类是指变量在程序执行过程中的作用范围。C51变量的存储种类有四种,分别是自动(auto)、外部(extern)、静态(static)和寄存器(register)。
1.auto:
2.extern:
3.static:
4.register:
数据类型
1 int
2 float
3 char 如‘a’用单引号
4 字符串常量,由双引号内的字符组成,如“test”,在存储字符串时系统会在字符串的尾部加上\0转义符以作为该字符串的结束,字符串“a”和字符常量'a'是不一样的。
存储器类型与存储区关系
data: 直接可寻址片内数据存储区(128字节)。指前面0x00-0x7f的128个RAM,可以用acc直接读写的,速度最快,生成的代码也最小。
idata: 间接可寻址片内数据存储区(259字节)。指前面0x00-0xff的256个RAM,其中前128和data的128完全相同,但两者访问的方式不同。idata是用类似C中的指针方式访问,汇编中语句为:mox ACC,@Rx。(补充:c程序中idata做指针式的访问效果很好)
bdata: 可位寻址片内数据存储区(16字节)。允许进行位和字节混合存取。
xdata:
pdata: 分页的片外数据存储区(256字节)。外部扩展RAM的低256个字节,地址出现在A0-A7的上时读写,用movx ACC,@Rx进行访问。这个比较特殊,而且C51好象有对此BUG,建议少用。但也有他的优点,具体用法属于中级问题,这里不提。
code: 程序存储区(64k)。用MOVC @DPTR进行访问。