1

我有一个头文件buildTree.h和一个 C 文件,头文件buildTree.c中有一个结构类型定义,我希望结构成员之一是枚举类型

头文件代码为:

#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 成员,编译,然后错误就消失了。如果我再次添加它,错误就会消失,直到我再次尝试分配......

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

编辑:我确实尝试在枚举中注释掉布尔值,以防万一它正在播放但没有改变

4

2 回答 2

2

如果这是因为您在结构中将“pType”错误输入为“ptype”,那么上帝会惩罚您。

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

于 2012-07-04T18:31:19.823 回答
1

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

于 2012-07-04T18:32:49.307 回答