static struct {
int32_t width;
int32_t height;
int32_t preFullscreenWidth;
int32_t preFullscreenHeight;
bool fullscreen;
bool mouseHovering;
} windowState = {
.preFullscreenWidth = SPACE_SHOOTER_DEFAULT_WINDOWED_WIDTH,
.preFullscreenHeight = SPACE_SHOOTER_DEFAULT_WINDOWED_HEIGHT,
.fullscreen = true,
.mouseHovering = false
};
这段代码定义了一个静态的匿名结构体,并创建了一个名为windowState
的结构体变量并初始化。该结构体有6个成员变量:width
、height
、preFullscreenWidth
、preFullscreenHeight
、fullscreen
和mouseHovering
。
在结构体变量windowState
的初始化过程中,使用了C语言中特有的成员初始化器语法(Member Initializer Syntax)。通过这种语法,可以直接对结构体中的某些成员进行初始化。例如,在本例子中,使用.preFullscreenWidth = SPACE_SHOOTER_DEFAULT_WINDOWED_WIDTH
来初始化结构体中的preFullscreenWidth
成员变量,将其赋值为SPACE_SHOOTER_DEFAULT_WINDOWED_WIDTH
。同样地,其他成员变量也都被初始化了。
需要注意的是,在这个例子中,静态结构体和静态变量都被定义在了同一个作用域内,因此windowState
变量在定义时使用了关键字static
来限制它的可见性范围。这意味着,windowState
只能在当前文件中访问,并且不会被其他文件所共享。