目录:
| – 第一章:多项目与团队协作
| – – – 第一节:常用C标准库
| – – – – – 输入输出
| – – – – – 数学库
| – – – – – 时间库
| – – – – – 算法库
| – – – 第二节:自定义库
| – – – – – 创建和管理自定义头文件和源文件
| – – – 第三节:预处理命令
| – – – – – 宏定义、条件编译、文件包含
| – – – – – 宏函数
| – – – 第四节:数据作用域与链接规则
| – – – – – 预处理器
| – – – – – 变量生命周期和作用域
| – – – 第五节:代码风格/规范
| – – – – – 为什么强调代码风格/规范
| – – – – – 微软:命名规范
| – – – – – 华为:命名规范
| – – – 第六节:编译系统与构建管理
| – – – – – Makefile编写与复杂项目构建
| – – – – – CMake构建工具的使用
| – – – – – 跨平台构建兼容性
| – 第二章:深入指针
| – – – 第一节:指针的高级用法
| – – – – – 空指针、野指针、悬空指针
| – – – – – 多级指针
| – – – – – 混合指针(指针、数组、函数、字符串)
| – – – – – 函数指针与回调函数
| – – – 第二节:结构体进阶
| – – – – – 结构体填充与内存管理
| – – – – – 位域结构体
| – – – 第三节:动态内存管理
| – – – – – 内存分配函数
| – – – – – 内存泄漏及其检测、修复
| – – – – – 内存碎片与内存对齐机制
| – – – – – 内存池
| – – – – – 常见的内存管理错误
| – 第三章:数据结构与算法
| – – – 第一节:线性表
| – – – – – 链表——单链表
| – – – – – 链表——双向链表
| – – – – – 链表——循环链表
| – – – 第二节:栈与队列
| – – – – – 栈
| – – – – – 单调栈
| – – – – – 队列
| – – – – – 循环队列
| – – – 第三节:树形结构
| – – – – – 树的定义
| – – – – – 树的性质
| – – – – – 树与森林
| – – – – – 二叉树
| – – – – – 哈夫曼树(霍夫曼树)
| – – – – – 二叉搜索树
| – – – – – 平衡二叉树
| – – – – – 红黑树
| – – – 第四节:图论
| – – – – – 图的基本术语
| – – – – – 图的表示方法
| – – – – – 图的性质
| – – – 第五节:常见算法
| – – – – – 排序算法——快速排序
| – – – – – 查询算法——二分查找
| – 第四章:进程与线程——并发编程
| – – – 第一节:进程
| – – – – – 进程的创建与管理
| – – – 第二节:线程
| – – – – – 线程的创建与管理
| – – – 第三节:线程安全与锁
| – – – – – 线程同步
| – – – – – 锁
| – – – 第四节:原子操作与内存屏障
| – – – – – 原子操作
| – 第五章:文件操作
| – – – 第一节:文件I/O
| – – – – – 文件的打开、读、写、关闭
| – – – – – 文件流与缓冲区
| – – – – – 文件访问模式
| – – – – – 错误处理与调试
| – – – 第二节:二进制文件
| – – – – – 文本文件与二进制文件的区别
| – – – – – 文件与二进制文件的比较和转换
| – – – – – 二进制文件的打开与写入
| – – – – – 二进制文件的读取
| – – – – – 文件流错误处理/异常处理
| – – – 第三节:文件指针的使用
| – – – – – 文件指针移动与常用函数
| – – – – – 文件指针的常见错误
| – 第六章:编译与链接
| – – – 第一节:编译过程
| – – – – – 编译的基本阶段
| – – – – – 编译器的工作流程
| – – – – – 编译命令与选项
| – – – 第二节:静态链接库
| – – – – – 静态链接库的概念
| – – – – – 创建静态库
| – – – 第三节:动态链接库
| – – – – – 动态链接库的概念
| – – – – – 创建动态链接库
| – 第七章:数据安全与防护
| – – – 第一节:常见安全问题
| – – – – – 缓冲区溢出
| – – – – – 未初始化变量
| – – – – – 未定义行为
| – – – – – 格式字符串漏洞
| – – – – – 指针误用
| – – – 第二节:安全的函数
| – – – – – 安全的字符串处理
| – – – – – 内存操作安全
| – 第八章:网络编程
| – – – 第一节:TCP/IP原理
| – – – – – TCP/IP模型介绍
| – – – – – TCP协议
| – – – – – IP协议
| – – – 第二节:UDP协议
| – – – – – UDP概述
| – – – – – UDP报文
| – – – – – UDP与TCP比较
| – – – 第三节:套接字通信
| – – – – – 套接字基础
| – – – – – TCP套接字
| – – – – – UDP套接字
| – – – 第四节:多路复用
| – – – – – 何为多路复用——多路复用简介
| – – – – – select函数
| – – – – – epoll库
| – – – 第五节:网络库
| – 第九章:C语言联合编程
| – – – 第一节:C语言与C++混合编程
| – – – – – 混合编程的必要性——我们为什么需要混合编程?
| – – – – – extern “C”
| – – – – – 头文件中的C/C++规范
| – – – 第二节:C语言与脚本语言语言交互
| – – – – – Python与C交互
| – – – – – Python与C API
| – – – – – Lua与C集成
| – – – – – Lua与C API
| – – – 第三节:C语言与汇编语言
| – 第十章:性能调优
| – – – 第一节:性能诊断工具
| – – – – – 性能分析工具简述
| – – – – – 内存分析
| – – – – – 系统性能监控
| – – – 第二节:算法调优
| – – – – – 时间复杂度与空间复杂度
| – – – – – 数据结构的选择与使用
| – – – – – 并行与并发算法
| – – – – – 代码优化经验总结
| – 第十一章:系统编程与操作系统接口
| – – – 第一节:UNIX/Linux系统接口
| – – – – – UNIX/Linux概述
| – – – – – 文件操作
| – – – – – 进程控制
| – – – – – 进程间的通信
| – – – – – 文件系统与设备管理
| – – – 第二节:信号机制
| – – – – – 信号处理
| – – – – – 阻塞与解除阻塞
| – – – – – 信号与多线程
| – 附录
板块信息:
板块: | C语言进阶 |
制作者/贡献者: | Ciallo~ | 虚位以待 |
适用: | 本教程适合C语言进阶学习、C++语言使用者阅读 |
参考: | |
留言: |
1. 本版块的知识收集整理非常不易,截至目前所有内容均由版主一人完成; |
没有回复内容