1、上节复习 10 16 2 C51扩充数据类型的语法规则 3 C51变量存储类型 缺省存储类型 1 C51变量定义 包含内容 4 C51指针变量定义 1 C51变量定义 包括内容 存储种类 数据类型 存储类型 变量名 存储种类 数据类型 存储类型 变量名 bit用于定义一个位变量 语法规则如下 bitbit name 常数0 1 2 C51扩充数据类型的语法规则 例如 bitdoor 0 定义一个叫door的位变量且初值为0 C51扩充数据类型 bit sfr或sfr16 sbit sfr或sfr16用于定义特殊功能寄存器变量 语法规则如下 sfr或sfr16sfr name 字节地址常数 例如
2、 sfrP0 0 x80 定义P0口地址80HsfrPCON 0 x87 定义PCON地址87Hsfr16DPTR 0 x82 定义DPTR的低端地址82H 1 将SFR的绝对位地址定义为位变量名sbitbit name 位地址常数 例如 sbitCY 0 xD7 3 将SFR的0 7位直接定义为位变量名sbitbit name sfr name 位位置 例如 sbitCY PSW 7 2 将SFR的相对位地址定义为位变量名sbitbit name sfr字节地址 位位置 例如 sbitCY 0 xD0 7 sbit用于定义具有位地址的SFR变量 共有3种定义形式 SMALL小编译模式 dat
3、a型COMPACT紧凑编译模式 pdata型LARGE大编译模式 xdata型 3 C51变量存储类型 缺省存储类型 C51有6种存储类型 分布在3个逻辑存储空间中 根据编译模式 共有3个缺省的存储类型 4 C51指针变量定义 数据类型 存储类型1 存储类型2 变量名 被指向变量名 数据类型 被指向变量的类型 如int型或char型存储类型1 被指向变量所在的存储区 缺省时由地址赋值关系决定存储类型2 指针变量所在的存储区 缺省时为编译器默认的存储区 典型实例charxdataa A char ptr 以char ptr形式定义的指针变量 既可指向位于xdata存储区的char型变量a的地址 也可指向位于idata存储区的char型变量b的地址