Skip to content

mdr 的 C 语言教程

注:由于章节数量及顺序尚未确定,本文件有很多不完善的地方

正文目录

语法和标准库模块

  1. 在开始编程之前
  2. 初识 C
    1. 一个简单的 C 程序
    2. 注释
    3. 对象 初步
    4. 数据
    5. 字符串字面量
    6. 初识断言
  3. 基本概念
    1. 行为
    2. 翻译单元
    3. 翻译阶段
  4. 表达式
    1. 运算符
    2. 求值顺序
    3. 整数常量 浮点常量
    4. 字符常量
    5. 隐式转换
    6. 值类别
  5. 语句
  6. 函数
    1. 递归迭代
  7. 数组
  8. 指针
    1. 类型限定符 restrict
    2. 空指针nullptr_t
    3. typedefaliasing
    4. 函数指针
  9. 声明 详解
    1. 类型限定符 const volatile
    2. 链接存储期 限定符 autostatic register extern
    3. 类型推导 auto
  10. 结构体
    1. 结构体的对齐
    2. 柔性数组
    3. 位域
  11. 联合体
  12. 对象
    1. 对象表示
      1. 内存对齐
      2. alignas
    2. 生存期
  13. 枚举
  14. 查找命名空间
  15. 内存管理
  16. 文件操作
  17. 可变参数 <stdarg.h>
  18. 泛型 _Generic
  19. 属性
  20. 错误处理 <errno.h> <assert.h> static_assert
  21. 线程 <thread.h>
  22. 原子类型原子操作 <stdatomic.h>
  23. 预处理器
  24. C 标准库
    1. C 标准库 的介绍和文档
    2. freestanding宿主实现
    3. 一些预定义的 <stddef.h> <stdint.h><limits.h>
    4. C 输入输出库 <stdio.h>
    5. C 数学库 <math.h> 一部分 <stdlib.h>
    6. C 复数库 <complex.h>
    7. C 二分查找和快速排序函数(in <stdlib.h>
    8. C 随机数生成(in <stdlib.h>
    9. C 时间日期库 <time.h>
    10. C 字符处理库 <ctype.h>
    11. C 字符串 API <string.h>
    12. C 执行控制函数(in <stdlib.h>
    13. 标准库扩展

数据结构与算法模块

算法

  1. 算法的定义
  2. 分析 算法的方法
  3. 时间/空间复杂度
  4. 分治法递归式主方法 和 Akra-Bazzi 方法
  5. 排序
  6. dp
  7. 贪心
  8. dfsbfs
  9. 最小生成树最短路径
  10. 线性规划
  11. 傅里叶变换FFT
  12. 字符串匹配

数据结构

  1. ADT
  2. 线性表 包括 顺序表队列链表
  3. 散列表散列函数
  4. 二叉搜索树红黑树
  5. B 树

项目案例模块

  1. C 项目结构 和 “为什么要分出头文件”
  2. C 大型项目源码的阅读
  3. C 网络编程
    1. 网络基础 - ISO 七层模型
    2. 网络基础 - TCP
    3. 网络基础 - UDP
  4. C 源码示例 - kilo
  5. 项目:多人聊天室 Mdr Chat Room
  6. C 源码示例 - libuv
  7. 项目:Web 服务器 Mdr Server
    1. 网络基础 - HTTP
    2. 加密 - TLSSSL
    3. 网络基础 - HTTPS
  8. 项目:编译型语言 Mdr lang
    1. 编译原理基础 - 词法分析
    2. 编译原理基础 - 语法分析
    3. 编译原理基础 - 运行时刻环境
    4. 编译原理基础 - 机器无关的代码优化
    5. C 源码示例:Lua
    6. 编译器框架 - LLVM
  9. 项目:数据库 MdrDB
    1. 关系型数据库 简介
    2. SQL 基础
    3. SQL parser
    4. 分页 存储
    5. C 源码示例:SQLite
  10. 项目:操作系统 MdrOS
    1. 引言
    2. 引导程序
    3. 视频驱动
    4. 中断系统
    5. 内存管理
    6. 文件系统
    7. 多任务
    8. 用户程序
    9. shell程序
  11. 项目:硬件抽象层 MdrHAL

本教程分四部分

  1. 语法和标准库
  2. 数据结构与算法
  3. 项目
  4. 嵌入式