我已经声明了一个具有枚举类型的结构。由于它是 .h 中的成员和 .c 文件中的枚举,因此我在代码中使用了枚举。
这样做合法吗,或者会导致编译问题吗?
// in test.h
typedef struct {
eState state;
} TEST;
// in test.c
#include "test.h"
typedef enum {
DEFAULT,
FAST
} eState;
最佳答案
您有三个选择:
将枚举声明移至
.h
文件(它必须位于结构声明之前)。或者绝对荒谬和愚蠢(您必须在包含
.h
文件的每个文件中以相同的方式声明枚举),但从语言的角度来看是合法的// in test.c typedef enum { DEFAULT, FAST } eState; #include "test.h"
您还可以将结构体声明移至
.c
文件中。
关于c - 在 .h 文件中声明结构并在 .c 文件中声明枚举,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45665378/