更新时间:2025-02-08 17:43:02
封面
版权信息
版权
内容提要
推荐语
前言
资源与支持
资源获取
提交勘误
与我们联系
关于异步社区和异步图书
第一篇 基础篇
第1章 提高代码可读性
1.1 代码可读性的级别
1.2 坏代码的特点
1.2.1 坏代码实例
1.2.2 妙手理码
1.3 编码风格的内容
1.3.1 Linux内核编码风格的一些规定
1.3.2 其他常见的编码风格
1.4 提高代码可读性的最佳实践
1.4.1 守好“80列”这条红线
1.4.2 空格、大括号位置及缩进
1.4.3 指针声明和定义中的星号位置
1.4.4 善用类型定义
1.4.5 命名规则保持一致
1.4.6 正确书写注释
1.4.7 优雅编写条件编译代码
1.5 其他有关编码风格的最佳实践
1.5.1 下画线前缀的使用
1.5.2 错误处理及集中返回
1.5.3 参数的合法性检查
1.6 命名的艺术
1.7 实例分析
1.7.1 PurC函数库头文件
1.7.2 经典的list_head结构体及其接口
第2章 用好写好头文件
2.1 重新认识头文件
2.1.1 头文件的作用
2.1.2 头文件的分类
2.1.3 头文件机制的复杂性
2.2 滥用系统头文件的负面影响
2.3 自定义头文件中的常见问题
2.3.1 不使用或不当定义头文件保卫宏
2.3.2 未正确处理和C++程序混用的情形
2.3.3 未处理可能的重复定义
2.3.4 包含不该出现在头文件中的内容
2.3.5 未妥善处理可能的可移植性问题
2.4 头文件相关的最佳实践
2.4.1 两大原则
2.4.2 头文件的划分及典型内容
2.4.3 头文件的组织
第3章 消除编译警告
3.1 为什么不能忽视编译警告
3.1.1 潜在问题恐酿成大祸
3.1.2 解读编译警告
3.2 常见的编译警告及其分类
3.2.1 预处理警告
3.2.2 未使用警告
3.2.3 未初始化警告
3.2.4 类型安全警告
3.2.5 逻辑运算相关的警告
3.2.6 格式化相关警告
3.2.7 词法警告
3.2.8 其他警告
3.3 编译警告和函数属性
3.3.1 malloc属性
3.3.2 nonnull属性
3.3.3 warn_unused_result属性
3.3.4 format属性
3.3.5 其他函数属性
3.4 消除编译警告只是开始
第4章 常量的定义和使用
4.1 常见的常量使用问题
4.1.1 立即数常量
4.1.2 字符串常量
4.2 正确定义和使用常量
4.2.1 立即数常量
4.2.2 字符串常量
4.3 优雅定义和使用常量
4.3.1 借助编译器
4.3.2 使用宏生成常量和代码
4.3.3 巧用编译时断言
4.4 字符串的原子化
第5章 充分利用构建系统生成器
5.1 常用构建系统和构建系统生成器
5.2 CMake影响编码的选项或功能
5.2.1 构建类型
5.2.2 处理平台差异
5.2.3 自动生成代码
5.3 CMake构建体系模板
5.3.1 整体结构和复制步骤
5.3.2 多平台支持
5.3.3 检测系统头文件、函数或结构体成员
5.3.4 查找第三方软件包
5.3.5 自定义功能测试
第二篇 模式篇
第6章 接口设计模式
6.1 何谓好接口
6.2 两个接口设计原则