部分 II. C语言本质

目录

14. 计算机中数的表示
1. 为什么计算机用二进制计数
2. 不同进制之间的换算
3. 整数的加减运算
3.1. Sign and Magnitude表示法
3.2. 1's Complement表示法
3.3. 2's Complement表示法
3.4. 有符号数和无符号数
4. 浮点数
15. 数据类型详解
1. 整型
2. 浮点型
3. 类型转换
3.1. Integer Promotion
3.2. Usual Arithmetic Conversion
3.3. 由赋值产生的类型转换
3.4. 强制类型转换
3.5. 编译器如何处理类型转换
16. 运算符详解
1. 位运算
1.1. 按位与、或、异或、取反运算
1.2. 移位运算
1.3. 掩码
1.4. 异或运算的一些特性
2. 其它运算符
2.1. 复合赋值运算符
2.2. 条件运算符
2.3. 逗号运算符
2.4. sizeof运算符与typedef类型声明
3. Side Effect与Sequence Point
4. 运算符总结
17. 计算机体系结构基础
1. 内存与地址
2. CPU
3. 设备
4. MMU
5. Memory Hierarchy
18. x86汇编程序基础
1. 最简单的汇编程序
2. x86的寄存器
3. 第二个汇编程序
4. 寻址方式
5. ELF文件
5.1. 目标文件
5.2. 可执行文件
19. 汇编与C之间的关系
1. 函数调用
2. main函数和启动例程
3. 变量的存储布局
4. 结构体和联合体
5. C内联汇编
6. volatile限定符
20. 链接详解
1. 多目标文件的链接
2. 定义和声明
2.1. externstatic关键字
2.2. 头文件
2.3. 定义和声明的详细规则
3. 静态库
4. 共享库
4.1. 编译、链接、运行
4.2. 动态链接的过程
4.3. 共享库的命名惯例
5. 虚拟内存管理
21. 预处理
1. 预处理的步骤
2. 宏定义
2.1. 函数式宏定义
2.2. 内联函数
2.3. ###运算符和可变参数
2.4. 宏展开的步骤
3. 条件预处理指示
4. 其它预处理特性
22. Makefile基础
1. 基本规则
2. 隐含规则和模式规则
3. 变量
4. 自动处理头文件的依赖关系
5. 常用的make命令行选项
23. 指针
1. 指针的基本概念
2. 指针类型的参数和返回值
3. 指针与数组
4. 指针与const限定符
5. 指针与结构体
6. 指向指针的指针与指针数组
7. 指向数组的指针与多维数组
8. 函数类型和函数指针类型
9. 不完全类型和复杂声明
24. 函数接口
1. 本章的预备知识
1.1. strcpystrncpy
1.2. mallocfree
2. 传入参数与传出参数
3. 两层指针的参数
4. 返回值是指针的情况
5. 回调函数
6. 可变参数
25. C标准库
1. 字符串操作函数
1.1. 初始化字符串
1.2. 取字符串的长度
1.3. 拷贝字符串
1.4. 连接字符串
1.5. 比较字符串
1.6. 搜索字符串
1.7. 分割字符串
2. 标准I/O库函数
2.1. 文件的基本概念
2.2. fopen/fclose
2.3. stdin/stdout/stderr
2.4. errno与perror函数
2.5. 以字节为单位的I/O函数
2.6. 操作读写位置的函数
2.7. 以字符串为单位的I/O函数
2.8. 以记录为单位的I/O函数
2.9. 格式化I/O函数
2.10. C标准库的I/O缓冲区
2.11. 本节综合练习
3. 数值字符串转换函数
4. 分配内存的函数
26. 链表、二叉树和哈希表
1. 链表
1.1. 单链表
1.2. 双向链表
1.3. 静态链表
1.4. 本节综合练习
2. 二叉树
2.1. 二叉树的基本概念
2.2. 排序二叉树
3. 哈希表
27. 本阶段总结