高质量C++/C编程指南:林锐博士著
需积分: 8 95 浏览量
更新于2024-09-20
收藏 326KB PDF 举报
"《高质量编程指南》是林锐博士撰写的一本关于C++/C编程的高清PDF资料,适用于面试和笔试的学习准备。书中详细介绍了编程的规范和最佳实践,旨在提升代码质量和可读性。"
该书内容涵盖多个方面,以下是其中的主要知识点:
1. **文件结构**:
- **版权和版本声明**:强调了文件的版权保护和版本控制的重要性。
- **头文件结构**:讨论了如何组织和使用头文件,确保代码的模块化和可重用性。
- **定义文件结构**:指导如何合理地划分源代码文件,提高代码组织性。
- **头文件作用**:解释头文件在项目中的功能,如包含声明和定义。
- **目录结构**:提倡建立清晰的项目目录结构,便于管理和维护。
2. **程序的版式**:
- **空行**:阐述了何时使用空行以增强代码的可读性。
- **代码行**:讨论了代码行的长度限制和换行策略。
- **空格**:规定了使用空格的规则,以保持代码整洁。
- **对齐**:强调了代码对齐对于视觉效果和阅读体验的影响。
- **长行拆分**:介绍了如何优雅地分割长行代码。
- **修饰符位置**:给出了放置访问修饰符、存储类别和类型修饰符的最佳位置。
- **注释**:讲解了如何编写有意义且易于理解的注释。
- **类的版式**:讨论了类定义的格式和风格。
3. **命名规则**:
- **共性规则**:概述了一套通用的命名约定,如使用有意义的标识符。
- **Windows和UNIX应用程序命名规则**:针对不同平台提供了特定的命名指导。
4. **表达式和基本语句**:
- **运算符优先级**:讲解了运算符的执行顺序,避免混淆和错误。
- **复合表达式**:讨论了如何构造和理解复杂的表达式。
- **IF语句**:强调了条件语句的清晰性和简洁性。
- **循环语句的效率**:提示优化循环结构以提高执行效率。
- **FOR语句的循环控制变量**:提供了有关for循环的最佳实践。
- **SWITCH语句**:解释了如何有效使用switch语句。
- **GOTO语句**:讨论了其优缺点,并鼓励减少或避免使用。
5. **常量**:
- **为何需要常量**:阐述了常量在代码中的角色和重要性。
- **CONST与#DEFINE的比较**:比较了const关键字和预处理器#define的区别。
- **常量定义规则**:给出了定义常量的规范。
- **类中的常量**:讨论了在类中声明和使用常量的方法。
6. **函数设计**:
- **参数的规则**:提供了选择和设计函数参数的建议。
- **返回值的规则**:讨论了函数返回值的合理设计。
- **函数内部实现的规则**:提出了函数实现过程中的最佳实践。
- **其它建议**:包含了其他提高函数质量的提示。
- **使用断言**:推荐在调试阶段使用断言来检测不合理情况。
- **引用与指针的比较**:分析了引用和指针的异同及其适用场景。
7. **内存管理**:
- **内存分配方式**:介绍了动态内存分配的不同方法。
- **常见的内存错误及其对策**:列举了内存管理中常见的问题及解决策略。
- **指针与数组的对比**:比较了两者在内存管理上的差异。
- **指针参数传递内存**:解析了通过指针参数传递内存的工作原理。
- **FREE和DELETE的异常行为**:解释了可能导致内存泄漏的问题。
- **动态内存自动释放**:讨论了何时和如何释放动态分配的内存。
- **消除“野指针”**:强调了防止未初始化或已释放指针的重要性。
- **NEW/DELETE与MALLOC/FREE**:探讨了两种内存分配方式的适用场合。
- **内存耗尽的应对**:提供了处理内存不足情况的建议。
- **MALLOC/FREE的使用要点**:给出了使用这些内存分配函数的注意事项。
这本书不仅适用于初学者,也对有经验的程序员具有参考价值,通过遵循这些高质量编程指南,可以写出更健壮、更易读的C++/C代码。
2009-08-31 上传
2019-08-06 上传
2012-05-26 上传
2018-12-12 上传
2010-06-19 上传
2009-02-04 上传
2019-09-05 上传
2010-05-26 上传
jinxiang0544
- 粉丝: 2
- 资源: 2
最新资源
- 前端协作项目:发布猜图游戏功能与待修复事项
- Spring框架REST服务开发实践指南
- ALU课设实现基础与高级运算功能
- 深入了解STK:C++音频信号处理综合工具套件
- 华中科技大学电信学院软件无线电实验资料汇总
- CGSN数据解析与集成验证工具集:Python和Shell脚本
- Java实现的远程视频会议系统开发教程
- Change-OEM: 用Java修改Windows OEM信息与Logo
- cmnd:文本到远程API的桥接平台开发
- 解决BIOS刷写错误28:PRR.exe的应用与效果
- 深度学习对抗攻击库:adversarial_robustness_toolbox 1.10.0
- Win7系统CP2102驱动下载与安装指南
- 深入理解Java中的函数式编程技巧
- GY-906 MLX90614ESF传感器模块温度采集应用资料
- Adversarial Robustness Toolbox 1.15.1 工具包安装教程
- GNU Radio的供应商中立SDR开发包:gr-sdr介绍