标题: 联合体名,结构体名,可以写在体尾,也可以写在关键字后 对吗? [打印本页]

作者: 51hei小林    时间: 2016-10-20 18:43
标题: 联合体名,结构体名,可以写在体尾,也可以写在关键字后 对吗?


作者: admin    时间: 2016-10-20 18:43
不是的。
写在union或struct后面的是联合体或结构体(类型)名称。
而写在末尾的是用类型定义的变量名,这样就没有定义类型名。

作者: 51hei小林    时间: 2016-10-20 18:44
哦,写在后面,就可以直接定义联合体或结构体的变量了。对吧,写在前面,只能是一种数据类型耍已,并非实际变量。这样理解对吧
作者: admin    时间: 2016-10-20 18:44
还有一种常见的写法
typedef struct
{
   ....
} abc;
意思是给结构体类型起个别名叫abc,后面就可以直接用abc来定义变量,而不需要写
struct   结构体名称   变量名列表;

作者: 51hei小林    时间: 2016-10-20 18:44
这个abc与 struct等价吧,在定义新的变量名的时候,任意一个,即可,对不?
晕,不对不对,关键我看错了
typedef 这是一个宏定义的关键字,是吧

作者: admin    时间: 2016-10-20 18:44
应该是这样
struct   abc
{
   ......
};
typedef   struct  abc       abc;

第一条语句中的abc是结构体名称,要用它定义变量要写struct  abc  变量名;
第二句给struct  abc起了别名叫abc,以后直接可以用abc定义变量,
如   abc   变量名;
之前写的是将两条语句合为一条写,这样可以省略结构体名称不写。

作者: 51hei小林    时间: 2016-10-20 18:45

#define struct
{
   ....
} abc 可不可以用这个关键字?

作者: 51hei小林    时间: 2016-10-20 18:45
typedef struct
{
   ....
} abc;

struct abc
{
   ....
}下面等价吧,对吗?一样的,
此时的,abc,都是表示为结构体的数据类型名
作者: 51hei小林    时间: 2016-10-20 18:47
反复再把你刚才给我讲的琢磨了一次,基本消化,谢谢你




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1