4.3.6 C51变量的绝对定位
C51有三种方式可以对变量(I/O端口)绝对定 位:绝对定位关键字 _at_ 、指针、库函数的绝对定 位宏。 C51扩展的关键字 _at_专门用于对变量作绝对定 位, _at_使用在变量的定义中,其格式为:
[存储类型] 数据类型 [存储区] 变量名1 _at_ 地址常数[,变量名2…]
4.3.6 C51变量的绝对定位
举例说明 _at_的使用方法
1)对data区域中的 unsigned char变量aa作绝对定位: unsigned char data aa _at_ 0x30;
2)对pdata区域中的 unsigned int数组cc作绝对定位: unsigned int pdata cc[10] _at_ 0x34;
3)对xdata区域中的 unsigned char变量printer_port作绝对定 位: unsigned char xdata printer_port _at_ 0x7fff;
4.3.6 C51变量的绝对定位
对变量绝对定位的几点说明:
1)绝对地址变量在定义时不能初始化,因此不 能对code型变量绝对定位; 2)绝对地址变量只能够是全局变量,不能在函 数中对变量绝对定位;
3)绝对地址变量多用于I/O端口,一般情况下 不对变量作绝对定位; 3)位变量不能使用 _at_绝对定位。
C51有三种方式可以对变量(I/O端口)绝对定 位:绝对定位关键字 _at_ 、指针、库函数的绝对定 位宏。 C51扩展的关键字 _at_专门用于对变量作绝对定 位, _at_使用在变量的定义中,其格式为:
[存储类型] 数据类型 [存储区] 变量名1 _at_ 地址常数[,变量名2…]
4.3.6 C51变量的绝对定位
举例说明 _at_的使用方法
1)对data区域中的 unsigned char变量aa作绝对定位: unsigned char data aa _at_ 0x30;
2)对pdata区域中的 unsigned int数组cc作绝对定位: unsigned int pdata cc[10] _at_ 0x34;
3)对xdata区域中的 unsigned char变量printer_port作绝对定 位: unsigned char xdata printer_port _at_ 0x7fff;
4.3.6 C51变量的绝对定位
对变量绝对定位的几点说明:
1)绝对地址变量在定义时不能初始化,因此不 能对code型变量绝对定位; 2)绝对地址变量只能够是全局变量,不能在函 数中对变量绝对定位;
3)绝对地址变量多用于I/O端口,一般情况下 不对变量作绝对定位; 3)位变量不能使用 _at_绝对定位。