今天犯了一个菜鸟级别的错误,
typedef struct{
WORD Year;
BYTE Month;
BYTE Day;
}MyDate,pMyDate;
申明了一个结构体全局变量
MyDate SysDate;//在申明的时候没有对其初始化
而是在一个函数中对SysDate进行的初始化
void Sys(void)
{
...
SysDate = {2015,12,2}; //不能使用这样的方式在函数对其初始化
...
}
这种初始化结构体的方式是错误的。正确的方式为
void Sys(void)
{
...
SysDate.Year = 2015;
SysDate.Month = 12;
SysDate.Day = 2;
...
}
与上面无关,另外一种方法是声明结构体变量的时候就对其初始化如
void Sys(void)
{
MyDate SysDate = {2015,12,2};
...
}