头文件中的枚举类型和结构

时间:2012-07-04 18:13:17

标签: c enums struct header-files

我有一个头文件buildTree.h和一个C文件buildTree.c在头文件中有一个struct typedef,我希望其中一个struct成员是枚举类型

头文件代码是:

#define TREE_ITEM_LIMIT 100

typedef enum pType {
    none = 0,
    bool = 1,
    number = 2,
    baud = 3    
}pType;

typedef struct tree {
    // 27 byte size struct
    char longName [13];
    char shortName [5];
    char shortParent [5];
    ptype parameterType;
    void (* handler)(int);
}tree;

extern tree item[TREE_ITEM_LIMIT];
extern tree defaultValues;

如果我然后尝试为C文件中的parameterType成员分配一个值,那么获取一堆错误,基本上说我的结构很麻烦。 真奇怪的是,如果我再次删除作业,下次编译时错误就不会消失!我必须从结构中删除pType成员,编译,然后错误消失了。如果我再次添加它,错误就会消失,直到我再次尝试分配...

猜测我没有正确使用标题中的枚举,但我不知道如何......

编辑:我确实尝试在枚举中评论bool,以防万一正在播放但没有变化

2 个答案:

答案 0 :(得分:2)

如果这是因为你在你的结构中将“pType”输错为“ptype”,那么众神会惩罚你。

下次,阅读第一行错误输出并修复它。

答案 1 :(得分:1)

命名枚举常量bool是一个特别糟糕的主意。这是为“stdbool.h”保留的,你可能会遇到很多问题。如果这是你所面对的,我们不能说,因为你既没有给你我们的编译器版本,也没有给我们错误输出。