0
我有一个枚举声明如下。声明枚举输出的函数
//declaring the situations can happen by next step
enum step {CANGO, CANTGO, WILLFALL, LOSEPOINT, GAINPOINT};
我想delcare一个函数,它的输出是声明枚举。我该怎么做?
我有一个枚举声明如下。声明枚举输出的函数
//declaring the situations can happen by next step
enum step {CANGO, CANTGO, WILLFALL, LOSEPOINT, GAINPOINT};
我想delcare一个函数,它的输出是声明枚举。我该怎么做?
简单:
enum step myfunction();
或者,如果你愿意,你可以使用typedef
,但我不会推荐它,在这种情况下:
typedef enum step step;
step myfunction();
要记住诀窍是,在C,一个枚举类型必须使用enum
关键字引用,所以纯文本step
不起作用,这可能是您首先尝试的。
当然,与typedef
伎俩它的作品。你还可以更懒,写:
typedef enum step {CANGO, CANTGO, WILLFALL, LOSEPOINT, GAINPOINT} step;
但我的意见是一个枚举必须看起来像一个枚举(类似结构的结构体,等等),这typedef
隐藏了。
为什么不推荐'typedef'在这种情况下? –
@MelikaBarzegaranHosseini:因为你隐藏了类型的本质。如果你的意图是隐藏它是一个枚举(即一个抽象数据类型),然后继续,但如果不是,typedef只会混淆代码并混淆代码的读者。 – rodrigo
强大到足以改变我的意见,我最好不要使用它。和一个很好的帮助。谢谢。 :) –