C中的_StructName约定有什么意义?

Lev*_*evi 3 c gtk conventions

在阅读了GTK +库中的一些来源之后,我遇到了我认为是一段奇怪的代码:

typedef struct _GtkWidgetClass GtkWidgetClass;

...

struct _GtkWidgetClass
{
    ...
};
Run Code Online (Sandbox Code Playgroud)

我不明白这段代码是为什么它不是这样写的:

typedef struct
{
    ...
} GtkWidgetClass;
Run Code Online (Sandbox Code Playgroud)

我觉得我错过了一些东西......
如果有人能够填写我为什么GTK(或者其他任何代码)是以这种方式编写的,那将非常感激.

提前致谢

mes*_*azs 6

从严格的编码角度来看,它没有任何意义.但是,在头文件中,它可以作为一种接口定义,列出GTK +的"公共"接口.顺便说一句,这种风格遵循其他GNU库.

无论如何,我认为我们可以肯定地说,使用现代C编译器和工具,它并没有太多意义,但GTK +实际上并不是一个新的库,所以它可以包含一些古老的编码约定.