1. 程式人生 > >C語言共用體union和列舉型別enum

C語言共用體union和列舉型別enum

結構體變數所佔記憶體長度是各成員佔的記憶體長度的總和。每個成員分別佔有其自己的記憶體單元。

共用體變數所佔的記憶體長度等於最長的成員長度。

注意點:

     1.共用體變數中起作用的成員時最後一次存放的成員,在存入一個新成員後原有的成員就失去作用。

     2.不能把共用體變數作為函式引數,也不能使函式帶回共用體變數,但可以使用變數的指標。

列舉型別:enum weekday{sun,mon,tue,wnd,thu,fri,sat};

注意點:

     1.在C編譯中,對列舉元素按照常量處理,故稱列舉常量。它們不是變數,不能對它們賦值。

     2.列舉元素作為常量,它們是有值的,C語言編譯按定義時的順序使它們的值為0,1,2,。。。。

        也可以改變列舉元素的值,在定義時由程式設計師指定,如:

        enum weekday{sun = 7,mon = 1,tue ,wed,thu,fri,sat}workday,week_end;

        定義sun = 7,mon = 1,以後順序加1,sat為6.

     3.一個整數不能直接賦給一個列舉變數。

        應先進行強制型別轉換才能賦值。如:workday = (enum weekday)2;