數(shù)據(jù)類型的不同實現(xiàn)相同功能:代碼的區(qū)別
1 //把內(nèi)部ram40H和41H的內(nèi)容分別給外部RAM100H和101H
2 #include
3
4 void main (void)
5 {
6 //注意了這里用到的是unsigned char數(shù)值范圍是0~256即是占用了一個內(nèi)存單元,所以要定義兩個指針變量
7 unsigned char xdata *xdp1; //因為外部的RAM100H和101H已經(jīng)超出了256,所以要用位數(shù)為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 //把內(nèi)部ram40H和41H的內(nèi)容分別給外部RAM100H和101H
2 #include
3
4 void main (void)
5 {
6 //注意了這里用到的是unsigned short數(shù)值范圍是0~65535即是占用了兩個內(nèi)存單元,所以只需定義兩個指針變量就ok了
7 unsigned short xdata *xdp; //因為外部的RAM100H和101H已經(jīng)超出了256,所以要用位數(shù)為16位的xdata;
8 unsigned short data *dp;
9
10 xdp = 0x100;
11 dp = 0x40;
12
13 *xdp = *dp;
14 }
以上兩段代碼實現(xiàn)了相同的功能,所以編寫代碼之前要注意定義的數(shù)據(jù)類型和存儲類型是什么樣的。
注意了:因為外部的RAM100H和101H已經(jīng)超出了256(FFH),而內(nèi)部RAM是8位的,即范圍為0--256(FFH)所以要用位數(shù)為16位的xdata;