2

定義済みの特定の列挙型のオペランドを取得する関数があります。安全上の理由から、オペランドが特定の列挙型に属しているかどうかをテストする関数が必要です。どうやってやるの?

4

2 に答える 2

1

あなたが次のようにenum見える場合:

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

次の条件を使用できます。

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

ただし、特定の値を指定する場合は、すべての値に対してチェックする必要があります。マクロが少し役に立ちます。

この点に関する標準の側面もあり、次のように述べています。

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

1タイプの有効な値ですenum /*...*/。したがって、「列挙型チェック」が何を意味するのかをもう少し詳しく説明する必要があります。

于 2013-03-29T18:38:55.100 に答える
0

Cの列挙型は単なる整数であるため、特定の列挙型に属しているかどうかを確認する方法はありません。

于 2013-03-29T18:38:38.247 に答える