[英]how to compare enum values
我有一個關於enum
C的問題。
我用以下方式定義了一個enum
:
typedef enum
{
Hello1 = 1,
Hello2 = 2,
Hello3 = 3
}Hello
Hello hello;
int value = 3;
那么如何將值與Hello
的值進行比較?
例如:
if(value == Hello3)
{
}
或者我應該像下面這樣做:
if(value == Hello.Hello3)
{
}
這種方式是正確的:
if (value == Hello3)
{
}
enum
常量的類型為int
。
你的第二個結構是無效的。
enum
不是結構,成員名稱只是相應constants
名稱。 enum
中定義的這些名稱不是struct
的enum
數據成員(正如您所想)。
所以請記住enum
用於定義一個命名整數常量列表,我們也可以使用#define
。
所以在你的情況下:
if(value == Hello3)
{
}
這是比較的正確方法,因為它在編譯時將值3
替換為Hello3
(這只是int
)。
例如,您也可以這樣做:
Hello hello=2;
if(hello == Hello2)
{
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.