1. 程式人生 > >枚舉、聯合

枚舉、聯合

復制 nio 基本類 範圍 return 強制 其中 left 賦值

枚舉enum、聯合union成員共用一個變量緩沖區

enum是一種基本數據類型,而不是一種構造類型,因為它不能再分解為任何基本類型

有些變量的取值被限定在一個有限的範圍內

枚舉值是常量不是變量,不能再對它賦值

0,1,2,3,4 …

enum weekday{sun,mon,tue,wed,thu,fri,sat};

weekday a, b;

enum weekday{sun,mon,tue,wed,thu,fri,sat}a,b;

enum {sun,mon,tue,wed,thu,fri,sat}a,b;

只能把枚舉值賦予枚舉變量,不能把元素的數值直接賦予枚舉變量。如一定要把數值賦予枚舉變量,則必須用強制類型轉換。

a=(enum weekday)2; a = (weekday)2;

即 a=tue;

inline week operator++( week &rs, int ) { //重載後++ a++時還需判斷是否超出範圍

week oldWeek = rs;

rs = (week)(rs + 1);

return oldWeek;

}

union 所有成員共用一個空間,並且同一時間只能儲存其中一個成員變量的值

union foo

{

int I;

char c;

double k;

}

union foo bar; 8個字節

{char s[10]; int a; } 10、 4 所以占12個字節

union的成員不可以為靜態、引用,如果是自定型態的話,該自訂型態成員不可以有建構函式、解構函式或是復制指定運算子。

對一個成員賦值,其他成員的值就不存在了。

枚舉、聯合