(1)什麼是列舉
列舉顧名思義就是一一枚舉。
把可能的取值一一枚舉。
enum color//顏色
;
以上定義的 enum color 是列舉型別。 {}中的內容是列舉型別的可能取
值,也叫列舉常量 。
(2)列舉的值
enum color//顏色
;
(3)列舉的優點
1)增加**的可讀性和可維護性
2)和#define定義的識別符號比較列舉有型別檢查,更加嚴謹。
3)防止了命名汙染(封裝)
4)便於除錯
5)使用方便,一次可以定義多個常量
(1)什麼是聯合體
聯合也是一種特殊的自定義型別 這種型別定義的變數也包含一系列的成員,特徵是這些成員公用同一塊空間(所以聯合也叫共用體)。
//聯合型別的宣告
union un
;//聯合變數的定義
union un un;
//計算連個變數的大小
printf
("%d\n"
,sizeof
(un)
);
(2)聯合的特點
聯合的成員是共用同一塊記憶體空間的,這樣乙個聯合變數的大小,至少是最大成員的大小(因為聯合至少得有能力儲存最大的那個成員)。
union un
;union un un;
// 下面輸出的結果是一樣的嗎?
printf
("%d\n",&
(un.i));
printf
("%d\n",&
(un.c));
//下面輸出的結果是什麼?
un.i =
0x11223344
;un.c =
0x55
;printf
("%x\n"
, un.i)
(3)聯合大小的計算
1)聯合的大小至少是最大成員的大小。
2)當最大成員大小不是最大對齊數的整數倍的時候,就要對齊到最大對齊數的整數倍。
3)聯合體依舊有位元組對齊。
位元組對齊方法可看:
列舉和聯合體
列舉 列舉顧名思義就是一一枚舉。把可能的取值一一枚舉出來。比如,現實生活中 列舉的定義 enum day 星期 enum 性別 enum color 顏色 以上定義的 enum day,enum enum color 都是列舉型別。中的內容是列舉型別的可能取值,也叫列舉常量。這些可能取值都是有值的,...
列舉 聯合體 遞迴
一.列舉 1.列舉是乙個型別 乙個常量陣列 2.關鍵字 enum 1 enum week 3.宣告乙個enum week w 那麼sizeof w 的大小是4 w可以等於以上七個裡面中的任意乙個 只能在範圍之內賦值 預設情況下 不賦值第乙個從0開始 mon 0 tue 1 以此類推 但例如對thu進...
結構體 聯合體 列舉
1 結構體struct 結構體的作用 在網路協議 通訊控制 嵌入式系統的c c 程式設計中,我們要傳送的不是簡單的位元組流 char型陣列 二是多種資料組合起來的乙個整體,其表現形式是乙個結構體。使用struct的注意事項 1 下面看乙個題目 結果 6 12 這裡涉及到結構體的記憶體對齊方式。1 關...