C语言结构体、联合与枚举详解及其应用
需积分: 15 170 浏览量
更新于2024-09-08
收藏 6KB TXT 举报
本篇笔记主要涵盖了C语言中的几个关键概念:结构体、联合体、枚举类型以及宏定义。首先,我们来看结构体(struct)部分。在C语言中,`struct student` 定义了一个学生数据类型,包含姓名(char array),年龄(int)和分数(int)。例如,`struct student jack` 和 `struct student rose` 分别表示一个叫Jack的学生实例和Rose的具体初始化,其中`.name`、`.score` 和 `.age` 是成员变量的访问方式。
接下来是`typedef`,它允许我们将结构体类型进行重新命名,如`typedef struct student STU`,这样可以直接使用`STU`代替`struct student`,同时`PSTU` 是结构体指针类型,用于指向`STU`类型的变量。`struct student <==> STU` 和 `struct student* <==> PSTU` 表明结构体与新类型的等价关系。
联合体(union)用于存储不同类型但相同大小的数据,如`union a`定义了一个可以存储字符(char),整数(int)或浮点数(float)的联合体。联合体中所有成员共享同一块内存空间,通过`union`关键字指定的变量名来访问不同的数据类型。
枚举(enum)用于定义一组命名的整数值,例如`enum weekday`定义了一个一周中的七天枚举,每个枚举值可以通过名称直接引用。在第二个示例中,枚举值进行了重新赋值,如`MON = 5`,这在计算时可以简化代码。`f()` 函数展示了递归的斐波那契数列算法,利用了递归调用的特点。
最后,宏定义(macro)是预处理器指令,`inline int f()`展示了如何创建一个内联函数,这种函数的调用相当于它的代码直接嵌入到调用者的地方,以提高执行效率。`inline int fun()` 是一个简单的例子,它计算两个整数的和,并返回结果。在实际编程中,需要注意内联函数的使用,以避免不必要的代码重复和性能开销。
此外,还提到了函数的输入参数验证和递归计算,以及在内存管理上的注意事项,强调了正确处理内存分配和释放的重要性。本篇笔记详细介绍了C语言中结构体、联合体、枚举和宏的使用,以及一些基本的编程技巧。
2019-08-13 上传
2021-11-29 上传
2022-07-16 上传
2021-10-02 上传
2024-06-13 上传
2023-09-03 上传
leaf666666
- 粉丝: 0
- 资源: 17
最新资源
- target-deep-learning:正在进行中的有关神经网络以进行图像异常检测的项目
- 易语言-置托盘图标和弹出托盘菜单程序
- 基于三菱PLC的煤质采样程序.rar
- FunAdmin V1.0 开源管理系统
- 自动CAR-Amit-
- describe-number:在Emacs中任意描述任意数量的数字
- simple_dashboard
- react-parallax:一个用于视差效果的React组件
- SaveVSUMLDiagramsToImageFile:针对Visual Studio 2013 Ultimate和Visual Studio 2015 Enterprise的MSDN“如何:将UML图导出到图像文件”的实现
- CS323-CollinEthanProject:Collin Umphrey和Ethan Monnin-CS323类项目
- 367DataScience
- qa-form-helper:用于 Web 表单 QA 的自动填充书签
- 马丁-福勒-分解第二
- LiteMap Toolbar-crx插件
- 经典三菱PLC带两伺服用于焊接机器程序.rar
- zipkin-rabbit-swagger