枚舉定義的三種方式
(1)
#includeenum ENUM_TEST { ENUM_EST1=1, ENUM_EST2, ENUM_EST3, ENUM_EST4, ENUM_EST5, ENUM_EST6, ENUM_EST7, ENUM_EST8, ENUM_EST9, ENUM_EST10, }; int main() { enum ENUM_TEST enum_test; enum_test = ENUM_EST10 + 1; printf("enum_test=%d\n", enum_test); return 0; } 結果:enum_test=11
(2)
#includeenum { ENUM_EST1=1, ENUM_EST2, ENUM_EST3, ENUM_EST4, ENUM_EST5, ENUM_EST6, ENUM_EST7, ENUM_EST8, ENUM_EST9, ENUM_EST10, }ENUM_TEST; int main() { ENUM_TEST = ENUM_EST10 + 1; printf("enum_test=%d\n", ENUM_TEST); return 0; } 結果:enum_test=11
(3)
#includetypedef enum { ENUM_EST1=1, ENUM_EST2, ENUM_EST3, ENUM_EST4, ENUM_EST5, ENUM_EST6, ENUM_EST7, ENUM_EST8, ENUM_EST9, ENUM_EST10, }ENUM_TEST; int main() { ENUM_TEST enum_test; enum_test = ENUM_EST10 + 1; printf("enum_test=%d\n", enum_test); return 0; } 結果:enum_test=11
注意1:
給枚舉變量賦值,如果數值超過了枚舉的取值范圍,則結果是不確定的,如上述三個例子。
注意2:
最後一個枚舉元素可以有“,”也可以沒有
注意3:
第一種用法,在聲明enum_test變量時必須用enum ENUM_TEST 聲明,而不能只用ENUM_TEST;在C++中兩種都是可以的。
第一種用法和第三種用法,都是聲明了一種類型;
第二種用法和第三種用法,雖然只相差一個typedef關鍵字,但意義確大不相同;第二種用法是聲明了一個枚舉變量,第三種用法是聲明了一個枚舉類型。