第 4 章:结构体、文件与模块¶
📋 本章概览¶
| 项目 | 内容 |
|---|---|
| 学习时长 | 45 分钟 |
| 核心概念 | 结构体、文件、头文件、编译单元 |
| 核心比喻 | 结构体是表单,头文件是接口说明,源文件是具体办事窗口 |
| 实践任务 | 拆分一个可保存联系人的小程序 |
| 难度等级 | ★★★☆☆ |
4.1 用结构体描述对象¶
结构体把相关字段组合成一个有意义的类型。
4.2 文件读写¶
FILE *file = fopen("contacts.txt", "a");
if (file == NULL) {
perror("fopen");
return 1;
}
fprintf(file, "%s,%s\n", contact.name, contact.phone);
fclose(file);
文件打开可能失败,写入和关闭也应当在真实程序中检查返回结果。
4.3 头文件和源文件¶
头文件描述接口,源文件提供实现。这样可以让编译单元更小,也更容易测试。
✏️ 课后练习¶
把通讯录的新增和查询功能拆分到 contacts.c,在 main.c 中只保留菜单和输入流程。
✅ 验证步骤¶
把程序拆成一个头文件和两个源文件,使用同一条编译命令构建;新增联系人后重新启动,确认文件中的数据仍可读取。
📝 本章总结¶
- 结构体把相关字段组合成有意义的类型。
- 文件读写必须检查打开、写入和关闭结果。
- 头文件声明接口,源文件提供实现。
🔮 下一章预告¶
最后一章会把通讯录的菜单、文件、内存和模块组合成完整项目。