结构体的定义和结构的设置成员



我想了解为什么有了这个结构定义,我们可以直接使用名称event为结构成员赋值。我见过其他定义,其中struct关键字用于分配值。

struct {
int eventNum;
int eventType;
} event;
void function() {
event.eventNum = 10; 
}
struct Name {int stuff; int data;} variable;

它与例如int variable;相同,因此,这是一个普通变量,但具有复杂值,或者如注释中指出的那样,派生类型。

在代码片段中,event是未命名结构(未初始化的全局变量(的实例。在全局范围内,未初始化的对象将所有成员初始化为其类型的零值。

函数function()可以使用event名称来引用此对象,并为其成员之一分配值:event.eventNum = 10;

您可能已经看到这样的初始化结构定义:

struct {
int eventNum;
int eventType;
} event = { 10, 0 };

或者像这样的 C99 特异性引发剂:

struct {
int eventNum;
int eventType;
} event = { .eventNum = 10 };

这些定义可以发生在全局或局部范围内,并定义初始化的对象event

您声明全局变量event哪种类型是"无标记">"不完整">(这是语言律师如何正确称呼它的问题(结构struct { int ventNum; int eventType; }。由于它是全局变量,因此在整个程序(包括函数(的范围内可见

最新更新