反复再把你刚才给我讲的琢磨了一次,基本消化,谢谢你 |
typedef struct { .... } abc; struct abc { .... }下面等价吧,对吗?一样的, 此时的,abc,都是表示为结构体的数据类型名 |
#define struct { .... } abc 可不可以用这个关键字? |
应该是这样 struct abc { ...... }; typedef struct abc abc; 第一条语句中的abc是结构体名称,要用它定义变量要写struct abc 变量名; 第二句给struct abc起了别名叫abc,以后直接可以用abc定义变量, 如 abc 变量名; 之前写的是将两条语句合为一条写,这样可以省略结构体名称不写。 |
这个abc与 struct等价吧,在定义新的变量名的时候,任意一个,即可,对不? 晕,不对不对,关键我看错了 typedef 这是一个宏定义的关键字,是吧 |
还有一种常见的写法 typedef struct { .... } abc; 意思是给结构体类型起个别名叫abc,后面就可以直接用abc来定义变量,而不需要写 struct 结构体名称 变量名列表; |
哦,写在后面,就可以直接定义联合体或结构体的变量了。对吧,写在前面,只能是一种数据类型耍已,并非实际变量。这样理解对吧 |
不是的。 写在union或struct后面的是联合体或结构体(类型)名称。 而写在末尾的是用类型定义的变量名,这样就没有定义类型名。 |