extern xdata struct msg setvalue[5];//设定参数 --结构体组
extern idata struct msg *CurSetPara;//指向结构体的指针
下面的两个子函数:
void write6word(unsigned int address)
{
EEPROM_writeword(address,CurSetPara->Set_temp);
_nop_();
_nop_();
EEPROM_writeword(address+2,CurSetPara->Set_hum);
_nop_();
_nop_();
EEPROM_writeword(address+4,CurSetPara->Set_hq1);
_nop_();
_nop_();
EEPROM_writeword(address+6,CurSetPara->Set_hq2);
_nop_();
_nop_();
EEPROM_writeword(address+8,CurSetPara->Set_fd1);
_nop_();
_nop_();
EEPROM_writeword(address+10,CurSetPara->Set_fd2);
_nop_();
_nop_();
}
//第一组参数放在第二扇区
void read_E2rom1()
{
CurSetPara=setvalue;
read6word(0x0210);
}
我的问题是:指针变量CurSetPara指向的是结构体的首地址吗?不知道这种问法恰不恰当!在void read_E2rom1()函数中,setvalue变量,在此setvalue与extern xdata struct msg setvalue[5]中的数组名称相同,这样是不是能正常编译?将setvalue变量,赋值给CurSetPara,从某种意义上来讲,就是又在另一个空间地址上读取一个结构体的成员内容,是这样吗?
extern xdata struct msg setvalue[5];//设定参数 --结构体组
extern idata struct msg *CurSetPara;//指向结构体的指针
这两句中,变量类型extern xdata和extern idata 是否相同?都是外部变量,xdata和idata在C51中是有区别的,然而之前加extern后又是什么情况?
请大侠不吝赐教,感激不尽!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
一周热门 更多>