数据类型的不同实现相同功能:代码的区别
扫描二维码
随时随地手机看文章
1 //把内部ram40H和41H的内容分别给外部RAM100H和101H
2 #include
3
4 void main (void)
5 {
6 //注意了这里用到的是unsigned char数值范围是0~256即是占用了一个内存单元,所以要定义两个指针变量
7 unsigned char xdata *xdp1; //因为外部的RAM100H和101H已经超出了256,所以要用位数为16位的xdata;
8 unsigned char xdata *xdp2;
9 unsigned char data *dp1;
10 unsigned char data *dp2;
11
12 xdp1 = 0x100;
13 xdp2 = 0x101;
14 dp1 = 0x40;
15 dp2 = 0x41;
16 *xdp1 = *dp1;
17 *xdp2 = *dp2;
18 }
复制代码
复制代码
1 //把内部ram40H和41H的内容分别给外部RAM100H和101H
2 #include
3
4 void main (void)
5 {
6 //注意了这里用到的是unsigned short数值范围是0~65535即是占用了两个内存单元,所以只需定义两个指针变量就ok了
7 unsigned short xdata *xdp; //因为外部的RAM100H和101H已经超出了256,所以要用位数为16位的xdata;
8 unsigned short data *dp;
9
10 xdp = 0x100;
11 dp = 0x40;
12
13 *xdp = *dp;
14 }
以上两段代码实现了相同的功能,所以编写代码之前要注意定义的数据类型和存储类型是什么样的。
注意了:因为外部的RAM100H和101H已经超出了256(FFH),而内部RAM是8位的,即范围为0--256(FFH)所以要用位数为16位的xdata;