我见过结构声明,看起来像这个
typedef struct br {
int year;
int km;
} Car;
Run Code Online (Sandbox Code Playgroud)
我知道我可以使用那种结构
Car ford;
ford.year = 1980;
ford.km = 12
Run Code Online (Sandbox Code Playgroud)
但是对于宣言中的"br"是什么?
oua*_*uah 12
br 被称为结构标签.
创建的新类型是struct br,Car并且只是一个类型别名struct br.
这个宣言
struct br ford;
Run Code Online (Sandbox Code Playgroud)
相当于这个声明:
Car ford; // ford is of type struct br
Run Code Online (Sandbox Code Playgroud)
还有组合形式:
typedef struct br {
int year;
int km;
} Car;
Run Code Online (Sandbox Code Playgroud)
相当于这些声明:
struct br {
int year;
int km;
};
typedef struct br Car;
Run Code Online (Sandbox Code Playgroud)
这是一个组合声明struct和一个类型定义.Car是新定义类型的名称; br是结构标签.您可以按如下方式使用它:
struct br x;
Run Code Online (Sandbox Code Playgroud)
这个组合声明相当于以下两个声明:
struct br {
int year;
int km;
};
Run Code Online (Sandbox Code Playgroud)
和
typedef struct br Car;
Run Code Online (Sandbox Code Playgroud)