【实验报告】高软实验4

本次实验报告详细记录了使用C语言编写命令行菜单小程序的过程,涵盖了强制类型转换、段错误排查、内存管理和互斥锁等知识点。通过创建cmdV2.5.c、linktable.c和linktable.h三个文件实现菜单功能,利用链表数据结构进行操作。实验中遇到并解决了如类型转换不当导致的段错误问题,并强调了动态内存必须通过free释放。最后,将代码上传至GitHub进行版本控制。

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

【Jerryykt1464929958440 + 《软件工程(C编码实践篇)》MOOC课程作业http://mooc.study.163.com/course/USTC-1000002006 】

github地址:https://github.com/JerryLittleBear/experiment.git


【实验目的】:


1、实现接口的定义(链表),提高代码的可重用性,LinkTable.c文件可以在别的项目中使用。
2、引入链表结构,用链表数据结构存储和操作的所有命令。
3、用callin方式调用命令函数。


我学到了】:


1、强制类型转换的应用

        在menuV2.5.c文件(见【关键代码】部分)的54和75行,调用LinkTable.c文件中的getLinkTableHead和 addLinkTableNode函数。而在这两个函数的定义中,getLinkTableHead的返回值和addLinkTableNode型参中的数据类型都是LinkTableNode*类型,而我们在主函数中调用的,是CmdNode类型,所以此时要强制类型转换,以便利用CmdNode结构体中的cmd和desc成员,用来储存命令名和对命令的描述。

值得注意的是,我们不能对结构体变量强制类型转换(占用内存大小和格式都不同),但是可以对结构体指针强制类型转换,在上述的例子中,都是对结构体指针操作的。

参考文献:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值