c語言中的聯合與枚舉最常用于什么場合?
謝邀!
數據結構的使用本身沒有章法可尋,易用、易懂就是好辦法。
如果我沒理解錯,你說的這個“聯合”應該是共用體(union)
但是就常用角度來說,共用體常用于數據的聯合與轉換,例如這樣:
typedef union
{
int Integer;
unsigned char Bytes[4];
}INTEGER;
這樣就可以方便的將一個int型分解成四個字節,特別是編寫底層驅動時候,此方法十分有用,如果是在C++中佐以運算符重載,使用將更加方便。
再說枚舉,枚舉類型本身其實是int或unsigned int類型,其意義在于歸類定義某一類常量值。比如最常見的布爾型就可以理解成一種特殊枚舉:
typedef enum
{
false = 0;
true = !false;
}bool;
同樣,枚舉可以實現更多類型的多態定義。
從邏輯本質上來講,枚舉與宏定義有相似之處,但枚舉的使用使代碼更易讀,更規范,例如如果兩個不同的枚舉值都為1,但因為在不同的枚舉中,是不可以在不進行強制類型轉換的前提下通用的,但宏定義無法實現此限制。
篇幅有限,手機碼字排版太累,多去開源社區逛逛,看看別人寫的代碼,看多了,自然就懂了。
上一篇c語言數組可以放結構體嗎
下一篇cpu8線程有什么用