在.h文件中声明了.h和enum中的结构

时间:2017-08-13 22:17:44

标签: c enums

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

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

// in test.h 
typedef struct {
   eState state;    

} TEST;

// in test.c
#include "test.h"

typedef enum {
    DEFAULT,
    FAST 

} eState;

1 个答案:

答案 0 :(得分:-1)

您有三种选择:

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

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

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