C语言程序设计:现代方法(第2版•修订版)(图灵图书)(K·N·金)

书: https://pan.baidu.com/s/1jDVnfhmGRwu5jeEuV63Kcg?pwd=bmyj
笔记如下:

  1. 现代C标准支持:涵盖C11/C17特性(如_Generic类型泛型、<stdatomic.h>原子操作)。
  2. 安全编程实践:强调缓冲区溢出防护(strncpy替代strcpy)、指针合法性检查。
  3. 底层与高层结合:从内存布局(结构体对齐、位域)到抽象设计(模块化封装)。
  4. 工具链集成:推荐使用clang/gcc的现代编译选项(如-Wall -Wextra)和调试工具(GDB)。
  5. 动态内存管理:深入剖析malloc/free机制,避免内存泄漏与悬垂指针。
  6. 多线程编程:C11线程库(<threads.h>)实现并发,配合互斥锁(mtx_t)同步。
  7. 文件与I/O高级操作:二进制文件随机访问(fseek)、内存映射文件(mmap)优化性能。
  8. 泛型编程技巧:通过void*和函数指针模拟泛型容器(如通用排序函数)。
  9. 错误处理模式:统一错误码、errnolongjmp组合应对复杂错误场景。
  10. 数据结构实现:手写链表、哈希表、二叉树,对比STL设计思想。
  11. 性能优化策略:内联函数(inline)、循环展开、缓存友好访问模式。
  12. 预处理进阶:条件编译(#ifdef)、X宏(X-Macros)生成代码,减少重复。
  13. 嵌入式C扩展volatile关键字、寄存器变量(register)在硬件编程中的应用。
  14. 与C++互操作extern "C"混合编译,兼容C++调用C库。
  15. 静态分析工具:集成clang-tidyCoverity检测未定义行为与代码缺陷。
  16. 网络编程基础:基于socket实现TCP/UDP通信,处理非阻塞I/O(poll/select)。
  17. 可移植性设计:处理字节序、字长差异(int32_t替代int),适配多平台。
  18. 代码风格规范:命名约定(匈牙利命名法争议)、缩进与注释的最佳实践。
  19. 测试驱动开发(TDD):通过Unity等框架实现自动化单元测试。
  20. 现代项目示例:从解析JSON到构建简易HTTP服务器,综合应用核心概念。

发表评论

您的电子邮箱地址不会被公开。 必填项已用 * 标注