struct和typedef struct的区别

本文详细介绍了C语言中的typedef用于定义类型别名以及typedefstruct与直接使用struct在声明结构体变量时的区别。通过实例演示了typedef如何简化代码并展示其在结构体申明中的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在了解struct和typedef struct之前,我们先学习下typedef的定义和用法。
typedef为C语言的关键字,作用是为一种数据类型定义一个新名字。这里的数据类型包括内部数据类型(int,char等)和自定义的数据类型(struct等)。
C语言里typedef的解释是用来声明新的类型名来代替已有的类姓名,例如:
typedef int CHANGE;
指定了用CHANGE代表int类型,CHANGE代表int,那么:
int a,b;和CHANGE a,b;是等价的、一样的。方便了个人习惯,熟悉的人用CHANGE来定义int。

现在回到struct和typedef struct的区别这个问题上来

  • 用struct node{}来定义结构体时,当我们定义node的结构体变量是,写法为:struct node n;
  • 用typedef struct node{}NODE来定义结构体时,申请变量时,写法为:NODE n,这里NODE就相当于node的别名。

归纳起来就是在使用时,是否可以省去struct这个关键字
举例来说:
在C中定义一个结构体类型时如果要用typedef:

typedef struct Student
{
   int no;
   char name[12];
}Stu,student;

于是在声明变量的时候就可:Stu stu1;或者:student stu2;(Stu 和student 同时为Student的别名)
如果没有typedef即:

struct Student
{
   int no;
   char name[12];
}Stu;

就必须用struct Student stu1;或者struct Stu stu1来声明
另外这里也可以不写Student

typedef struct
{
   int no;
   char name[12];
}Stu;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

蝈蝈(GuoGuo)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值