【发布时间】:2015-06-19 14:23:36
【问题描述】:
我想知道是否有任何方法可以将整数传递给需要枚举类型的函数。
我需要使用这个函数:void SetValue(enumtypevalue){ variable = value},它是由同事制作的,枚举类似于:
typedef enum
{
Obj1 = 0,
Obj2 = 1,
...
Objn = m,
}enumtype;
问题是这个函数在我在程序中使用的库中,我知道枚举的编号但不知道名称(Obj1,Obj2 ...)所以我想知道它是否可以做类似的事情SetValue(4) 而不是 SetValue(Obj1)所以我的伙伴不必重写/更改它,我也不必对所有枚举进行硬编码(这不小)。
我知道假装传递一种类型而不是另一种听起来很愚蠢,但如果你将“Obj1”传递给函数,就像说“0”一样,因为它们是相关的,所以这就是我提出这个“傻瓜”问题的原因。
谢谢。
【问题讨论】:
-
你的意思是
enum而不是结构吗? -
是的,对不起,太失败了。我已经编辑了谢谢
-
不要做 typedef enum {...} enumName。这不是 typedef 的用途。
-
我的想法是不必改变我伙伴的工作,但谢谢。我仍然不知道为什么有人投票反对我的问题,但 nvm。