C,结构中的枚举,错误C2016,头文件

时间:2013-06-22 13:30:30

标签: c header-files

让它工作,谢谢所有人;]

enum genre {A, B, C, D, E};

struct recipe
{
    genre category;
    char name[50];
    char ingredients[50]; 
    char instruction[1000];
};


void menu();
void file_check(char *name);

错误:

error C2016: C requires that a struct or union has at least one member
error C2061: syntax error : identifier 'genre'
error C2059: syntax error : '}'

这是我的头文件。我无法弄清楚编译器想要什么:(我认为它会这样工作

2 个答案:

答案 0 :(得分:5)

C要求您使用:

enum genre category;

而不是

genre category;

要使用genre category声明,您需要typedef

typedef enum {A, B, C, D, E} genre;

而不是

enum genre {A, B, C, D, E};

答案 1 :(得分:0)

C语言要求struct/enum/union类型的标识符在您想要使用它的每个地方的左侧都有其类型。为避免每次都出现这种情况,您可以使用typedef关键字。