在uc模块中,使用到了C语言中的位域。整理如下。
/* 位域的申明 */ typedef struct UC_OSPF_INTERFACE_VALID { UINT8 deadInter : 1; UINT8 tranDelay : 1; UINT8 prio : 1; UINT8 cost : 1; UINT8 helloInter : 1; UINT8 retrInter : 1; UINT8 intfType : 1; UINT8 reserve :2; }UC_OSPF_INTERFACE_VALID; typedef struct UC_OSPF_INTERFACE{ //Something else UC_OSPF_INTERFACE_VALID valid; } UC_OSPF_INTERFACE;
位域的引用。
static STATUS swOspfAsbrAggre2Uc(ULONG pID,ULONG ipNum,ULONG maskNum, UINT32 paraMask,UINT32 tag,BOOL noCmd) { int rv = ERR_NO_ERROR; UC_OSPF_SUMMARY_ADDR* ucSummAddr = NULL; ucSummAddr->valid.tag = FALSE; //直接复制为TRUE或者FALSE }