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