变量主要由两个部分构成
发布时间:2014/6/5 21:42:53 访问次数:6317
变量主要由两个部分构成:一个是变量名,一个是变量值。每个变量都有一个变量名, AD7656BSTZ-1在内存中占有一定的内存单元(地址),并在该内存单元中存放该变量的值。要在程序中使用变量必须先用标识符作为变量名,并指出所用的数据类型和存储模式,这样编译器才能为变量分配相应的存储空间。在C语言中,要求对所有用到的变量做强制定义,也就是“先定义,后使用”。
定义一个变量的格式如下:
[存储种类】数据类型[存储器类型]变量名表
在定义格式中,除了数据类型和变量名表是必要的,其他都是可选项。存储种类包括自动( auto)、外部(extern)、静态(static)和寄存器(register)4种,默认类型为自动(auto)。存储器类型的说明就是指定该变量在51单片机硬件系统中所使用的存储区域,在编译时根据存储种类可以准确地定位。C51中共有data、bdata、idata、pdata、xdata以及code 6种存储器类型,如表5-4所示。
如果省略存储器类型,编译系统则会按编译模式SMALL、COMPACT或LARAG所规定的默认存储器类型区指定变量的存储区域。无论什么存储模式都呵以声明变量在任何的8051存储区范围,但是将最常用的命令,如循环计数器和队列索引放在内部数据区可以显著提高系统的性能。变量的存储种类与存储类型是完全无关的。
SMALL存储模式将所有变量都放在单片机的内部RAM区,这使得访问数据非常快,但SMALL存储模式的地址空间受限。在写小型应用程序时,变量和数据放在data内部数据存储器中是很好的,因为访问速度快,但在较大的应用程序中data区最好只存放小的变
量、数据或常用的变量(如循环计数、数据索引),而大的数据则放置在别的存储区域。
COMPACT存储模式可以使用一页(256字节)外部扩展RAM。
LARAG存储模式可以使用全部的外部扩展RAM,外部数据区最多可有64KB,这要求用DPTR数据指针访问数据。
下面再来仔细看看51单片机C语言程序中sfr、sfr16和sbit定义变量的方法。
sfr和sfr16可以直接对51单片机的特殊寄存器进行定义,定义方法如下:
sfr特殊功能寄存器名=特殊功能寄存器地址常数;
sfr16特殊功能寄存器名=特殊功能寄存器地址常数;
如可以这样定义89C51单片机的Pl端口:
变量主要由两个部分构成:一个是变量名,一个是变量值。每个变量都有一个变量名, AD7656BSTZ-1在内存中占有一定的内存单元(地址),并在该内存单元中存放该变量的值。要在程序中使用变量必须先用标识符作为变量名,并指出所用的数据类型和存储模式,这样编译器才能为变量分配相应的存储空间。在C语言中,要求对所有用到的变量做强制定义,也就是“先定义,后使用”。
定义一个变量的格式如下:
[存储种类】数据类型[存储器类型]变量名表
在定义格式中,除了数据类型和变量名表是必要的,其他都是可选项。存储种类包括自动( auto)、外部(extern)、静态(static)和寄存器(register)4种,默认类型为自动(auto)。存储器类型的说明就是指定该变量在51单片机硬件系统中所使用的存储区域,在编译时根据存储种类可以准确地定位。C51中共有data、bdata、idata、pdata、xdata以及code 6种存储器类型,如表5-4所示。
如果省略存储器类型,编译系统则会按编译模式SMALL、COMPACT或LARAG所规定的默认存储器类型区指定变量的存储区域。无论什么存储模式都呵以声明变量在任何的8051存储区范围,但是将最常用的命令,如循环计数器和队列索引放在内部数据区可以显著提高系统的性能。变量的存储种类与存储类型是完全无关的。
SMALL存储模式将所有变量都放在单片机的内部RAM区,这使得访问数据非常快,但SMALL存储模式的地址空间受限。在写小型应用程序时,变量和数据放在data内部数据存储器中是很好的,因为访问速度快,但在较大的应用程序中data区最好只存放小的变
量、数据或常用的变量(如循环计数、数据索引),而大的数据则放置在别的存储区域。
COMPACT存储模式可以使用一页(256字节)外部扩展RAM。
LARAG存储模式可以使用全部的外部扩展RAM,外部数据区最多可有64KB,这要求用DPTR数据指针访问数据。
下面再来仔细看看51单片机C语言程序中sfr、sfr16和sbit定义变量的方法。
sfr和sfr16可以直接对51单片机的特殊寄存器进行定义,定义方法如下:
sfr特殊功能寄存器名=特殊功能寄存器地址常数;
sfr16特殊功能寄存器名=特殊功能寄存器地址常数;
如可以这样定义89C51单片机的Pl端口:
上一篇:字符串型常量由双引号内的字符组成
上一篇:元器件的选择