我有一个在头文件中声明的枚举器类型。我想在包含此头文件的c文件中使用它。但是在编译时我得到一个错误,即没有定义枚举器类型。我已经尝试将枚举器声明复制到我的源文件,但是我收到一个错误:“嵌套重新定义'enum command_type'”
有人可以解释如何在我的文件中使用枚举器类型吗? 谢谢!
调查员:
//command-internals.h
enum command_type
{
AND_COMMAND, // A && B
SEQUENCE_COMMAND, // A ; B
OR_COMMAND, // A || B
PIPE_COMMAND, // A | B
SIMPLE_COMMAND, // a simple command
SUBSHELL_COMMAND, // ( A )
};
用法:
//#include "command-internals.h"
command_type scan(char *buffer)
...
错误:error: unknown type name ‘command_type’
答案 0 :(得分:2)
你的原型应该是:
enum command_type scan(char *buffer);
因为你没有在枚举声明中加上typedef
。
答案 1 :(得分:1)
您的代码编译器无法理解command_type
的类型是什么。
一个人通常会使用typedef
:
//页眉文件
typedef enum {....} command_type;
// C档案
command_type scan(char *buffer)
通过此功能,您无需记得再次在任何地方添加enum
。