簡體   English   中英

如何比較枚舉值

[英]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中定義的這些名稱不是structenum數據成員(正如您所想)。

所以請記住enum用於定義一個命名整數常量列表,我們也可以使用#define

所以在你的情況下:

if(value == Hello3)
{
}

這是比較的正確方法,因為它在編譯時將值3替換為Hello3 (這只是int )。

例如,您也可以這樣做:

Hello hello=2;
if(hello == Hello2)
{
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM