我已经使用枚举类型声明了一个结构。因为它是.h文件中的成员和.c文件中的枚举,我在代码中使用枚举。
这是合法的,还是会导致编译问题?
// in test.h
typedef struct {
eState state;
} TEST;
// in test.c
#include "test.h"
typedef enum {
DEFAULT,
FAST
} eState;
答案 0 :(得分:-1)
您有三种选择:
将枚举声明移至.h
文件(必须在结构声明之前)。
或绝对荒谬和愚蠢(您必须在包含.h
文件的每个文件中以相同方式声明枚举)但从语言角度来看是合法的
// in test.c
typedef enum {
DEFAULT,
FAST
} eState;
#include "test.h"
您还可以将结构声明移动到.c
文件。