enum和int的相互轉換

2021-06-28 21:40:58 字數 987 閱讀 8137

例如:

[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()  

enum與int的相互轉換

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

float和int相互轉換

利用unsigned char 指標,在任意型別之間轉換 直接強制將float強制轉換成int 最後一位丟失精度則 0.5處理 序列通訊是以位元組為單位進行傳送的,對於浮點數和整型數都需要進行轉換位元組陣列才能進行通訊。mcu和pc的浮點數都是基於ieee754格式的。有4位元組 float 8位元...

java String 和 int 相互轉換

專案中經常會涉及到資料型別的不一致情況,這是就需要我們稍作處理。這篇文章介紹一下常見的兩種資料型別之間的轉換 string和int。例如 string a test int b 1 區別 int b 1 轉 string 方法一string b b 會產生兩個 string物件 方法二 string...