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 回答