【转载】struct和typedef struct彻底明白了

本文详细解析了C++中struct和typedefstruct的用法与区别,包括它们在内存对齐、访问权限以及类型定义等方面的知识,帮助开发者更好地理解和运用这两种结构体。

struct和typedef struct彻底明白了 - bingo~ - 博客园
https://www.cnblogs.com/qyaizs/articles/2039101.html

### C语言 `struct` `typedef` 的用法与区别 #### 一、`struct` 关键字的作用 在C语言中,`struct` 是用来定义一种新的复合数据类型的关键字。它允许将不同类型的数据组合在一起形成一个整体。例如: ```c struct student { char *name; // 姓名 int num; // 学号 int age; // 年龄 char group; // 小组 float score;// 成绩 }; ``` 在此处,`struct student` 表示一个新的数据类型被定义出来[^1]。 --- #### 二、使用 `struct` 创建变量的方法 一旦定义了一个结构体类型,就可以基于这个类型创建具体的变量实例。如下所示: ```c struct student stu1; stu1.num = 101; stu1.score = 95.5f; ``` 这种写法虽然清晰易懂,但在频繁使用时会显得冗长繁琐,因为每次都要带上 `struct` 这个关键词[^2]。 --- #### 三、引入 `typedef` 的意义 为了简化书写过程,提高代码可读性,C语言提供了 `typedef` 来为现有类型赋予别名的功能。具体到结构体上来说,它可以省去重复输入 `struct` 字样带来的麻烦。继续沿用前面的例子来看其应用形式: ```c typedef struct student { char *name; // 姓名 int num; // 学号 int age; // 年龄 char group; // 小组 float score;// 成绩 } stu; ``` 现在有了 `stu` 这个新名字代表整个结构体类型后,再声明相应类型的变量就方便多了: ```c stu stu1; stu1.num = 101; stu1.score = 95.5f; ``` 可以看到,相比之前版本少了那个让人觉得啰嗦的 `struct` 关键词[^3]。 --- #### 四、两者的主要差异对比分析 | **特性/方面** | **仅使用 struct** | **结合 typedef 使用** | |-----------------------|-------------------------------------------|------------------------------------------| | 变量声明复杂度 | 需要显式写出 'struct' | 不必提及 'struct', 更简洁 | | 类型重命名能力 | 没有 | 支持 | | 对新手友好程度 | 较低 | 较高 | 值得注意的一点是,尽管表面上看起来只是少打几个字母而已,但实际上随着项目规模增大以及维护周期延长等因素影响下,采用后者往往能够带来显著效率提升同时减少潜在错误发生几率[^4]。 --- #### 五、实际编码建议 对于初学者而言,在刚开始接触结构体概念阶段最好严格按照传统模式编写程序以便于理解内部机制;而当熟悉基本原理之后则推荐广泛运用带有 `typedef` 形式的风格从而达到事半功倍的效果[^5]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

开心超人dev

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

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

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

打赏作者

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

抵扣说明:

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

余额充值