找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4022|回复: 8
收起左侧

联合体名,结构体名,可以写在体尾,也可以写在关键字后 对吗?

[复制链接]
ID:140343 发表于 2016-10-20 18:43 | 显示全部楼层 |阅读模式
回复

使用道具 举报

ID:1 发表于 2016-10-20 18:43 | 显示全部楼层
不是的。
写在union或struct后面的是联合体或结构体(类型)名称。
而写在末尾的是用类型定义的变量名,这样就没有定义类型名。
回复

使用道具 举报

ID:140343 发表于 2016-10-20 18:44 | 显示全部楼层
哦,写在后面,就可以直接定义联合体或结构体的变量了。对吧,写在前面,只能是一种数据类型耍已,并非实际变量。这样理解对吧
回复

使用道具 举报

ID:1 发表于 2016-10-20 18:44 | 显示全部楼层
还有一种常见的写法
typedef struct
{
   ....
} abc;
意思是给结构体类型起个别名叫abc,后面就可以直接用abc来定义变量,而不需要写
struct   结构体名称   变量名列表;
回复

使用道具 举报

ID:140343 发表于 2016-10-20 18:44 | 显示全部楼层
这个abc与 struct等价吧,在定义新的变量名的时候,任意一个,即可,对不?
晕,不对不对,关键我看错了
typedef 这是一个宏定义的关键字,是吧
回复

使用道具 举报

ID:1 发表于 2016-10-20 18:44 | 显示全部楼层
应该是这样
struct   abc
{
   ......
};
typedef   struct  abc       abc;

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

使用道具 举报

ID:140343 发表于 2016-10-20 18:45 | 显示全部楼层

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

使用道具 举报

ID:140343 发表于 2016-10-20 18:45 | 显示全部楼层
typedef struct
{
   ....
} abc;

struct abc
{
   ....
}下面等价吧,对吗?一样的,
此时的,abc,都是表示为结构体的数据类型名
回复

使用道具 举报

ID:140343 发表于 2016-10-20 18:47 | 显示全部楼层
反复再把你刚才给我讲的琢磨了一次,基本消化,谢谢你
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表