mdr 的 C 语言教程
注:由于章节数量及顺序尚未确定,本文件有很多不完善的地方
正文目录
语法和标准库模块
- 在开始编程之前
- 初识 C
- 基本概念
- 表达式
- 语句
- 函数
- 数组
- 指针
- 声明 详解
- 类型限定符
const
volatile
- 链接 和 存储期 限定符
auto
static
register
extern
- 类型推导
auto
- 类型限定符
- 结构体
- 联合体
- 对象
- 枚举
- 查找 和 命名空间
- 内存管理
- 文件操作
- 可变参数
<stdarg.h>
- 泛型
_Generic
- 属性
- 错误处理
<errno.h>
<assert.h>
static_assert
- 线程
<thread.h>
- 原子类型 和 原子操作
<stdatomic.h>
- 预处理器
- C 标准库
- C 标准库 的介绍和文档
- freestanding 和 宿主实现
- 一些预定义的 宏
<stddef.h>
<stdint.h>
<limits.h>
- C 输入输出库
<stdio.h>
- C 数学库
<math.h>
一部分<stdlib.h>
- C 复数库
<complex.h>
- C 二分查找和快速排序函数(in
<stdlib.h>
) - C 随机数生成(in
<stdlib.h>
) - C 时间日期库
<time.h>
- C 字符处理库
<ctype.h>
- C 字符串 API
<string.h>
- C 执行控制函数(in
<stdlib.h>
) - 标准库扩展
数据结构与算法模块
算法
数据结构
- ADT
- 线性表 包括 顺序表,栈,队列 和 链表
- 散列表 和 散列函数
- 二叉搜索树 和 红黑树
- B 树
项目案例模块
- C 项目结构 和 “为什么要分出头文件”
- C 大型项目源码的阅读
- C 网络编程
- C 源码示例 - kilo
- 项目:多人聊天室 Mdr Chat Room
- C 源码示例 - libuv
- 项目:Web 服务器 Mdr Server
- 网络基础 - HTTP
- 加密 - TLS 和 SSL
- 网络基础 - HTTPS
- 项目:编译型语言 Mdr lang
- 编译原理基础 - 词法分析
- 编译原理基础 - 语法分析
- 编译原理基础 - 运行时刻环境
- 编译原理基础 - 机器无关的代码优化
- C 源码示例:Lua
- 编译器框架 - LLVM
- 项目:数据库 MdrDB
- 关系型数据库 简介
- SQL 基础
- SQL parser
- 分页 存储
- C 源码示例:SQLite
- 项目:操作系统 MdrOS
- 项目:硬件抽象层 MdrHAL
本教程分四部分
- 语法和标准库
- 数据结构与算法
- 项目
- 嵌入式