C C 使用心得 enum與int的相互轉換

2022-01-14 13:32:52 字數 971 閱讀 1826

如何正確理解enum型別?

例如:[cpp]view plain

copy

enum color ;   

color x;  

我們應說x是color型別的,而不應將x理解成enumeration型別,更不應將其理解成int型別。

我們再看enumeration型別:

[cpp]view plain

copy

enum color ;  

(c程式設計師尤其要注意!)

理解此型別的最好的方法是將這個型別的值看成是red, white和blue,而不是簡單將看成int值。

c++編譯器提供了color到int型別的轉換,上面的red, white和blue的值即為0,1,2,但是,你不應簡單將blue看成是2。blue是color型別的,可以自動轉換成2,但對於c++編譯器來說,並不存在int到color的自動轉換!(c編譯則提供了這個轉換)

例如以下**說明了color會自動轉換成int:

[cpp]view plain

copy

enum color ;  

void f()  

以下**也說明了color會自動轉換成int:

[cpp]view plain

copy

void f()  

但是,c++編譯器並不提供從int轉換成color的自動轉換:

[cpp]view plain

copy

void f()  

若你真的要從int轉換成color,應提供強制型別轉換:

[cpp]view plain

copy

void f()  

但你應保證從int轉換來的color型別有意義。

Enum列舉使用心得

mysql 1 enum可以用於資料庫 弊端貌似有,所以用的少 2 enum在資料庫中,執行sql的時候型別是string型別的 mybatis 3 沒有enum型別 view 4 freemarker頁面列舉的遍歷輸出 springmvc中這樣寫 model.addattribute enum b...

fsscanf與fprintf使用心得

專案忙的最近乙個多月都沒有寫部落格了 前兩天在做專案時遇到要乙個結構體中的內容格式化的寫進乙個檔案中然後再格式化的讀出來,就可以使用fprintf和fscanf,那麼有個問題就是fprintf寫檔案和fscanf讀檔案時的資料格式必須完全匹配,如果有不相符的地方,那麼就會失敗。而且fscanf對資料...

enum與int的相互轉換

如何正確理解enum型別?例如 enum color color x 我們應說x是color型別的,而不應將x理解成enumeration型別,更不應將其理解成int型別。我們再看enumeration型別 enum color c程式設計師尤其要注意!理解此型別的最好的方法是將這個型別的值看成是r...