四. 指针与结构体
Typedef Struct _data_str {
Unsigned Int DATA1[10];
Unsigned Int DATA2[10];
Unsigned Int DATA3[10];
Unsigned Int DATA4[10];
Unsigned Int DATA5[10];
Unsigned Int DATA6[10];
Unsigned Int DATA7[10];
Unsigned Int DATA8[10];
}DATA_STR;
//开辟一个外RAM空间,确保这个空间够装你所需要的
Xdata Uchar My_data[MAX_STR] _at_ 0x0000;
DATA_STR *My_Str;
My_Str=(DATA_STR*)My_data; //把你的结构体指针指向这个数组的开头
以后的操作就这样:
My_Str->DATA1[0]=Xxx;
My_Str->DATA1[1]=Xxx;
那么你的变量就自然放到XDATA中去了.
注意定义的My_data[MAX_STR],不能随便被操作,它只是开始的时候用来开辟内存用的.
Struct Student
{
Char Name[20];
Int Num;
}Stu1,Stu2;
Struct Student
{
Char Name[20];
Int Num;
};
Struct Student Stu1,Stu2;
Struct Student *P;
P=&Stu1;
访问成员方法:
A. Stu1.Num
B. (*P).Num; //因为“.”的优先级高于“*”所以要加括号。
C. P->Num;
Struct Student Stu[10];
Struct Student * P;
P=Stu;
|