Type定义枚举类型作为结构

Cat*_*osh 5 c embedded enums struct typedef

在这里嵌入c.我们的一位合作伙伴向我们发送了他们正在使用的库函数的API原型.有一个枚举像:

typedef enum{
     val1 = 0, 
     val2 = 1, 
    [..]
} status;
Run Code Online (Sandbox Code Playgroud)

然后将枚举类型定义为结构:

typedef struct status status_t;
Run Code Online (Sandbox Code Playgroud)

这种typedef的含义是什么?它有一些实际意义吗?我是否必须像常规结构一样处理它?我认为,这种方法我可以将枚举器转换为结构,我可以访问结构的成员,但我不确定.任何提示都将非常感激.BRL

在arm-gcc上,GNU c99

dbu*_*ush 5

这是两种不同的类型.

结构名称在它们自己的命名空间中.所以struct status不同于status.前者是结构的名称,而后者是typedef,指的是未命名的enum.

分配给枚举的typedef名称与赋予结构的标记名称相同这一事实并不意味着它们以任何方式与编译器相关联.