typedef struct和struct的区别和用法

本文深入解析了C语言中typedef和struct的用法,详细阐述了它们各自的功能以及在实际编程中的应用区别。通过实例对比,帮助读者清晰地了解如何在结构体定义中灵活运用这两个关键字。

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

typedef是类型定义的意思,struct是定义结构体的意思,而typedef strcut是为这个结构体定义一个别名的意思;

比如:

typedef struct 结构名
{
类型 变量名;
类型 变量名;
...
} 结构别名;

这想当于2步操作:

1)、

struct 结构名
{
类型 变量名;
类型 变量名;
...
} ;

2)、typedef struct 结构名 结构别名;

此时,结构别名 = struct 结构名;

因为在C语言中,使用“struct 结构名{...};”定义一个结构的话,必须使用“struct 结构名 对象名”来定义一个对象。所以为了使用的方便,我们给这个结构名起来个别名叫“结构别名”,即

typedef struct 结构名
{
类型 变量名;
类型 变量名;
...
} 结构别名;

 当我们将上述代码的typedef去掉是,变成下面的代码:

struct 结构名
{
类型 变量名;
类型 变量名;
...
} 结构对象;

 这表示使用上述代码定义的是一个结构名和该结构明的一个结构对象。比如:

struct Student
{
int a;
}stu1;//stu1是一个变量

typedef struct Student2
{
int a;
}stu2;//stu2是一个结构体类型 

 使用时可以直接访问stu1.a,但是stu2则必须先 stu2 s2,然后 s2.a=10;

上述区别都是在C语言中。

在C++中,如果定义了下面的代码:

struct tagPOINT1
{
int x;
int y;
};

 则可以直接写:结构名 对象名,即:tagPOINT1 p1来定义对象p1;但是在C语言中必须加上struct,即:struct tagPOINT1 p1来定义对象p1;

此外,在C中,struct不能包含函数。在C++中,对struct进行了扩展,可以包含函数。

转载于:https://www.cnblogs.com/magic-cube/archive/2011/11/07/2240232.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值