在阅读了GTK +库中的一些来源之后,我遇到了我认为是一段奇怪的代码:
typedef struct _GtkWidgetClass GtkWidgetClass;
...
struct _GtkWidgetClass
{
...
};
Run Code Online (Sandbox Code Playgroud)
我不明白这段代码是为什么它不是这样写的:
typedef struct
{
...
} GtkWidgetClass;
Run Code Online (Sandbox Code Playgroud)
我觉得我错过了一些东西......
如果有人能够填写我为什么GTK(或者其他任何代码)是以这种方式编写的,那将非常感激.
提前致谢
从严格的编码角度来看,它没有任何意义.但是,在头文件中,它可以作为一种接口定义,列出GTK +的"公共"接口.顺便说一句,这种风格遵循其他GNU库.
无论如何,我认为我们可以肯定地说,使用现代C编译器和工具,它并没有太多意义,但GTK +实际上并不是一个新的库,所以它可以包含一些古老的编码约定.