C 声明输出为enum的函数
我有一个枚举声明,如下所示C 声明输出为enum的函数,c,enums,declaration,C,Enums,Declaration,我有一个枚举声明,如下所示 //declaring the situations can happen by next step enum step {CANGO, CANTGO, WILLFALL, LOSEPOINT, GAINPOINT}; 我想去关心一个函数,它的输出是声明的枚举。我该怎么做?简单: enum step myfunction(); 或者,如果需要,您可以使用typedef,但我不建议在这种情况下使用: typedef enum step step; step myf
//declaring the situations can happen by next step
enum step {CANGO, CANTGO, WILLFALL, LOSEPOINT, GAINPOINT};
我想去关心一个函数,它的输出是声明的枚举。我该怎么做?简单:
enum step myfunction();
或者,如果需要,您可以使用typedef
,但我不建议在这种情况下使用:
typedef enum step step;
step myfunction();
记住的诀窍是,在C中,枚举类型必须使用enum
关键字引用,因此普通的步骤
不起作用,这可能是您首先尝试的
当然,使用typedef
技巧,它是有效的。你甚至可以更懒地写:
typedef enum step {CANGO, CANTGO, WILLFALL, LOSEPOINT, GAINPOINT} step;
但是我认为一个枚举必须看起来像一个枚举(一个结构像一个结构,等等),这个typedef
隐藏了它。简单:
enum step myfunction();
或者,如果需要,您可以使用typedef
,但我不建议在这种情况下使用:
typedef enum step step;
step myfunction();
记住的诀窍是,在C中,枚举类型必须使用enum
关键字引用,因此普通的步骤
不起作用,这可能是您首先尝试的
当然,使用typedef
技巧,它是有效的。你甚至可以更懒地写:
typedef enum step {CANGO, CANTGO, WILLFALL, LOSEPOINT, GAINPOINT} step;
但我认为枚举必须看起来像一个枚举(一个结构像一个结构,等等),而这个
typedef
隐藏了它。在这种情况下,为什么不推荐typedef
?@MelikaBarzegaranHosseini:因为你隐藏了类型的本质。如果您的意图是隐藏它是一个枚举(即抽象数据类型),那么继续,但如果不是,typedef只会混淆代码并混淆代码的读者。足够强大,足以改变我的观点,我最好不要使用它。一个很好的帮助。谢谢。:)在这种情况下,你为什么不推荐typedef
?@MelikaBarzegaranHosseini:因为你隐藏了类型的本质。如果您的意图是隐藏它是一个枚举(即抽象数据类型),那么继续,但如果不是,typedef只会混淆代码并混淆代码的读者。足够强大,足以改变我的观点,我最好不要使用它。一个很好的帮助。谢谢。:)