在 .h 中声明结构,在 .c 文件中声明枚举



我已经声明了一个带有枚举类型的结构。由于它是 .h 中的成员和 .c 文件中的枚举,因此我在代码中使用枚举。

这样做是合法的,还是会导致编译问题?

// in test.h 
typedef struct {
eState state;    
} TEST;
// in test.c
#include "test.h"
typedef enum {
DEFAULT,
FAST 
} eState;

您有三个选择:

  1. 将枚举声明移动到.h文件(它必须在结构声明之前(。

  2. 或者绝对荒谬和愚蠢(您必须在包含.h文件的每个文件中以相同的方式声明枚举(,但从语言的角度来看是合法的

    // in test.c
    typedef enum {
    DEFAULT,
    FAST 
    } eState;
    #include "test.h"
    
  3. 还可以将结构声明移动到.c文件中。

相关内容

  • 没有找到相关文章

最新更新