typedef取对结构体取别名

typedef struct list
{
    int data[SIZE];
    int last;
} seqlist, *seqlist_q;

list 是一个结构体标签(tag),用于定义结构体类型 seqlist。结构体标签是用来标识结构体类型的名称,它本身并不占用内存空间。

seqlist 是一个结构体类型的别名,它通过 typedef 关键字定义为 struct list。这样可以使用 seqlist 来声明结构体变量,例如 seqlist mylist;。

seqlist_q 是一个指向 seqlist 结构体类型的指针别名,也是通过 typedef 关键字定义的。这样可以使用 seqlist_q 来声明指向 seqlist 结构体的指针变量,例如 seqlist_q ptr;。

总结一下,list 是结构体标签,seqlist 是结构体类型的别名,seqlist_q 是指向 seqlist 结构体的指针类型的别名。它们之间的区别在于使用方式和所表示的数据类型。

使用结构体类型别名定义变量的方式是直接使用别名来声明变量,而使用结构体标签定义变量的方式是先使用标签定义结构体类型,然后使用标签来声明变量。

例如,在给定的代码中,使用结构体类型别名 seqlist 来定义变量的方式是:

seqlist *p = creat_seqlist();

这里直接使用别名 seqlist 来声明一个指针变量 p。

而使用结构体标签 struct list 定义变量的方式是:

struct list mylist;

这里先使用标签 struct list 定义了结构体类型,然后使用标签来声明一个结构体变量 mylist。

区别在于使用别名定义变量时,可以直接使用别名来声明变量,更加简洁和方便。而使用结构体标签定义变量时,需要先使用标签定义结构体类型,然后再使用标签来声明变量。使用别名可以使代码更易读和理解,尤其在处理复杂的结构体类型时,可以简化代码。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值