单片机定义问题

typedef unsigned char
byte;
#define MCODE code
extern byte MCODE VerDate[];
byte XDATA timer_1ms_L _at_ 0x1F74;
#define MCU_DATA
((byte data*)(0x00))
三四五行是什么意思,小弟新学51单片机,哪位大哥指点下啊

data表明数据在片内数据存储区;
xdata表明数据在片外数据存储区;
code表明数据在程序存储区;
extern定义的数据是在另外一个模块,当引用其它文件中的变量时要加上extern。extern的重要意义在于表明要定义的数据已经在其他地方定义过,此处只是引用,所以编译器不会另外开辟内存。
byte 是字节的意思,
第二行 #define MCODE code一句指明MCODE 代表code;所以第三行
extern byte MCODE VerDate[];
的意思是在程序存储空间定义字节型数组,因为加了extern,所以本语句并不开辟内存空间,只是调用其他地方已经定义过的数组。

第四行:
byte XDATA timer_1ms_L _at_ 0x1F74;
意思是定义片外数据存储区的变量timer_1ms_L _at_,值为 0x1F74;

第五行:#define MCU_DATA
((byte data*)(0x00))
意思是定义指向字节型的片内数据存储区的指针MCU_DATA
,并赋值为Ox00.

感谢sernia指出我的错误,在下又学习到了新的知识。
温馨提示:答案为网友推荐,仅供参考
相似回答