【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成员,用来储存命令名和对命令的描述。
值得注意的是,我们不能对结构体变量强制类型转换(占用内存大小和格式都不同),但是可以对结构体指针强制类型转换,在上述的例子中,都是对结构体指针操作的。
参考文献: