这是编码惯例吗?

kin*_*er1 4 c linux coding-style

我正在对一段代码进行功能增强,这就是我在现有代码中看到的内容.如果声明了枚举或结构,以后总会有一个typedef:

enum _Mode {
   MODE1 = 0,
   MODE2,
   MODE3
};
typedef enum _Mode Mode;
Run Code Online (Sandbox Code Playgroud)

类似于结构:

struct _Slot {
     void * mem1;
     int mem2;
};
typedef struct _Slot Slot;
Run Code Online (Sandbox Code Playgroud)

结构不能直接在枚举中声明吗?为什么对于像下划线这样小的东西有一个typedef?这是编码惯例吗?

请给出好的答案,因为我需要添加一些代码,如果这是一个规则,我需要遵循它.

请帮忙.PS:作为附加信息,源代码用C语言编写,Linux是平台.

a'r*_*a'r 9

在C中,要声明具有结构类型的变量,您必须使用以下内容:

struct _Slot a;
Run Code Online (Sandbox Code Playgroud)

typedef允许你通过基本上创建一个别名使这看起来有点整洁.并允许变量声明如下:

Slot a;
Run Code Online (Sandbox Code Playgroud)