接触c最久了,发现一些细节东西,竟然还不是很熟悉。
1, struct pt{
int a;
};
这里 struct pt 是一个结构体类型。
struct pt pt; 这里声明了一个pt变量,虽然看上去容易混淆,但是是允许的。
2 struct {
int a;
}pt;
这里定义了一个结构体,并且定义了一个pt变量。 注意struct后面是没有名字的。这样的结构变量必须在定义的时候,像pt一样,全部写出来。
3 struct pt{
int a;
}pt;
这里是定义结构体 struct pt 的时候,顺便定义了一个pt变量。
4,typedef struct {
int a;
}pt;
这里pt是类型。像int一样 , pt pt; 是合理的。
5 struct pt{
struct pt *next;
int a;
}pta;
struct 后面的pt必须要出现,否则 定义这个类型的指针时,没法应用类型。
6 typedef struct pt{
struct pt *next;
int a;
} pta;
这里pta是类型了。