数据使用通常有两总情况:
1.作为数值使用,比如1000,10000;
2.作为数据使用,比如数组中的ucDat[0],ucDat[1]....,串口或是其他通信接口中传输的数据data0,data1....
在应用过程中经常要在这两者之间相互转换,非常麻烦,而且容易出错.
typedef struct LCDSHOWDAT_tag
{
/*里程*/
union
{
u32 uiDis;
u8 ucDat[4];
}Undat;
/*速度*/
u16 usSpd;
/*模式*/
u8 ucMod;
/*电量*/
u8 ucPow;
/*系统错误信息*/
u8 ucSysErr;
/*显示亮度pwm占空比*/
u8 usPwmDuty;
/*自动关机*/
u16 usAutoOffTim;
}LCDSHOWDAT_STRU;
LCDSHOWDAT_STRU stShowDat;
里面就包含有结构体和联合体.
联合体结构体的联合使用就很好解决这个问题.
如果要使用32位的uiDis,那么使用stShowDat.Undat.uiDis这个就OK了
如果要填数据或传输数据,那么使用stShowDat.Undat.ucDat[0],stShowDat.Undat.ucDat[1]....
好处:
1.方便使用,减少出错可能性
3.节省内存空间
4.方便移植,省时,省力
5.你说呢?哈哈哈