簡體   English   中英

枚舉類型檢查

[英]Enumeration type check

我有一個函數,它獲取預定義的特定枚舉類型的操作數。 出於安全原因,我希望函數測試操作數是否屬於特定的枚舉類型。 我怎樣才能做到這一點?

如果您的enum看起來像:

enum /* ... */
{
  V1,
  V2,
  /* ... */ 
  VN
};

您可以使用以下條件:

if (v < V1 || v > VN)
{
  /* invalid */
}

但是,如果提供特定值,則必須對照每個值進行檢查。 宏可以幫助您一點。

關於這一點,標准還有一個方面,它說:

enum /* ... */
{
  V1 = 0,
  V2 = 2,
};

1enum /*...*/類型的有效值。 因此,您必須詳細說明“枚舉類型檢查”對您而言意味着什么。

C中的枚舉只是一個整數,因此無法檢查它是否屬於特定的枚舉類型。

暫無
暫無

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

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