结构体变量typedef struct
struct tag {
member-list
member-list
member-list
…
} variable-list ;
//tag 是结构体标签。
//member-list 是标准的变量定义,
//比如 int i; 或者 float f,或者其他有效的变量定义。
//variable-list 结构变量,定义在结构的末尾,
//最后一个分号之前,您可以指定一个或多个结构变量。
//其实没什么用
//tag、member-list、variable-list 这 3 部分至少要出现 2 个。
不明白的点:Simple2 u1;
指,名称为Simple2的结构体变量,u1是Simple类型的类的名字
比如:
struct Books
{
char title[50];
char author[50];
char subject[100];
int book_id;
};
{
struct Books Book1;
/* 声明 Book1,类型为 Books */
然后Book1里面就有Books的四种变量
//此声明声明了拥有3个成员的结构体,分别为整型的a,字符型的b和双精度的c
//同时又声明了结构体变量s1
//这个结构体并没有标明其标签
struct
{
int a;
char b;
double c;
} s1;
//此声明声明了拥有3个成员的结构体,分别为整型的a,字符型的b和双精度的c
//结构体的标签被命名为SIMPLE,没有声明变量
struct SIMPLE
{
int a;
char b;
double c;
};
//用SIMPLE标签的结构体,另外声明了变量t1、t2、t3
struct SIMPLE t1, t2[20], *t3;
//也可以用typedef创建新类型
typedef struct
{
int a;
char b;
double c;
} Simple2;
//现在可以用Simple2作为类型声明新的结构体变量
Simple2 u1, u2[20], *u3;