新书推荐
《C指针原理揭秘:基于底层实现机制》
点击上图了解及购买
从C指针原理、C语言核心双角度进行深入剖析,帮助读者跳出内存泄露、指针越界、指针类型错误等陷阱。
编辑推荐
从C底层核心机制进行解析,避免滥用指针。
以编译生成的中间汇编码为剖析对象,针对C指针基础进行讲解,从汇编语言的角度理解C指针,力图使读者由一种简单的汇编语言理解复杂的C指针机制。
配合编程技巧以及某些指针运用技巧,阐明C指针的高级应用知识,灵活运用指针之间的组合,提高程序效能。
剖析了解释语言指针、TCC编译实践、垃圾回收等高级C指针应用话题。
内容简介
全书分为准备篇、基础篇、进阶篇。指针及相关内容是编程语言中较难理解的部分,脚本语言稍好些,C语言就更加明显,虽然理解指针本身并不复杂,但指针之间的组合以及指针的灵活运用能产生各种不同的效果,也有着不同的作用。本书力求从底层实现机制进行解析,同时配合C编程技巧以及某些指针运用技巧,讲解如何提高程序效能,如何避免滥用指针。
准备篇介绍C指针概述、UBUNTU及开发环境配置、AT&T汇编简介、C程序运行机制;基础篇将对AT&T汇编、C指针基础以及高级C指针实现机制进行讲解;进阶篇讲解C编程技巧、C指针高级应用、解释语言指针原理、垃圾回收以及多进程多线程和网络编程等高级C指针应用话题。
作者简介
刘兴(笔名麦好),硕士学位,中国青年海归协会和中国量化投资学会山西分会成员,长期活跃于CSDN和ITEYE等社区,发表过多篇技术博客。
目录
前言
第一篇 准备篇
第1章 C语言概述 2
1.1 C语言的起源与发展 2
1.2 C语言特性 3
1.3 开发环境搭建 4
1.3.1 Windows开发环境 4
1.3.2 UNIX/Linux开发环境 13
1.3.3 随书网盘的开发环境 33
1.4 hello,world 38
1.5 小结 43
第2章 C语言快速入门 44
2.1 C语言的语法特点 44
2.2 猜数字游戏 45
2.2.1 编写输入数字的C代码 46
2.2.2 限制输入数字的范围 46
2.2.3 引入循环机制,允许重新输入 48
2.2.4 产生1~500以内的随机整数 50
2.2.5 反复接收玩家输入,直到猜中数字为止 52
2.2.6 自动猜数算法 54
2.3 小结 57
第3章 AT&T汇编概述 58
3.1 AT&T汇编基础 58
3.1.1 IA-32指令 58
3.1.2 汇编的作用 59
3.1.3 AT&T汇编语言的特点 59
3.1.4 第一个AT&T汇编 61
3.2 程序运行机制 64
3.3 小结 65
第二篇 基础篇
第4章 指针基础 68
4.1 C指针概述 68
4.2 C指针基础 69
4.2.1 指向标量的C指针 69
4.2.2 指向数组的C指针 73
4.2.3 指针数组 75
4.2.4 函数参数中使用指针 82
4.2.5 常量指针 85
4.2.6 函数指针 88
4.2.7 文件指针 91
4.3 小结 98
第5章 C开发基础 99
5.1 编译与调试C程序 99
5.1.1 GCC与GDB 99
5.1.2 make工具与makefile 104
5.2 GLib函数库 107
5.2.1 GLib简述 107
5.2.2 GLib基础 110
5.2.3 GLib数据类型及标准宏 118
5.3 内存管理 120
5.3.1 glibc的内存管理 120
5.3.2 内存分配机制 121
5.3.3 内存回收 125
5.4 Ncurses库 137
5.4.1 Ncurses简述 137
5.4.2 Ncurses基础 137
5.4.3 Ncurses实例:文字编辑器 154
5.5 小结 181
第三篇 进阶篇
第6章 C开发技巧集锦 184
6.1 递归 184
6.1.1 递归概述 184
6.1.2 斐波那契数列 184
6.1.3 brainfuck解释器 186
6.2 字符串操作 196
6.2.1 复制并截断字符串 196
6.2.2 字符串拼接 197
6.2.3 在内存中复制字符串 197
6.2.4 目录的尾部位置 197
6.2.5 查找文件扩展名 198
6.3 加法溢出 198
6.3.1 溢出原理 198
6.3.2 溢出应用 199
6.4 编译信息的预定义宏 200
6.4.1 __FILE__与__LINE__ 201
6.4.2 #line与#error 201
6.5 C与汇编语言混合编程 202
6.5.1 寄存器 203
6.5.2 变量存储分配 204
6.5.3 汇编指令概述 205
6.5.4 C编译执行原理 207
6.5.5 汇编调用C库函数 209
6.5.6 C内联汇编 210
6.6 小结 216
第7章 C并行与网络基础 217
7.1 多进程、多线程基础 217
7.1.1 多进程编程 218
7.1.2 多线程委托模型 220
7.1.3 分离线程 222
7.1.4 取消线程 224
7.1.5 多线程竞争域 230
7.1.6 线程互斥对象 232
7.1.7 线程专有数据 239
7.1.8 消息队列 241
7.2 C网络基础 245
7.2.1 TCP基础 245
7.2.2 TCP编程基础 245
7.2.3 TCP编程示例 248
7.3 小结 254
你与世界
只差一个
公众号