Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 声明输出为enum的函数_C_Enums_Declaration - Fatal编程技术网

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只会混淆代码并混淆代码的读者。足够强大,足以改变我的观点,我最好不要使用它。一个很好的帮助。谢谢。:)