C语言从新手到高手 PDF下载

C语言从新手到高手 PDF下载插图

C语言从新手到高手封面

C语言从新手到高手 PDF下载插图1

C语言从新手到高手书签

作者: 关淞元
出版社: 中国铁道出版社
出版年: 2020-1
页数: 316
定价: 79
装帧: 平装
ISBN: 9787113263188

内容简介
“本书的主要特色是根据作者多年的开发架构经验编写,凝聚了一个菜鸟程序员慢慢成长为架构师的程序设计之路,书中包含很多开发设计实例,以及作者对于C 语言和设计模式的独特见解,以及如何运用Cache 和NUMA 等技术来优化程序执行效率,随着多核技术的蓬勃发展,本书也涉及C 语言在多核开发下的优势和劣势。
本书共分四大部分。
第一部分新手篇:第1~6 章,着重介绍C 语言基础语法。
第二部分进阶篇:主要介绍C 语言的数据类型、预处理器、编译原理,通过实例阐述C 语言的魅力。
第三部分实战篇:包含C 语言的经典数据结构和通用设计模式等,以及Linux下程序调试的方法。
第四部分高手篇:介绍如何进行程序优化、Cache 利用、NUMA 技术、多核技术等。”

目录 · · · · · ·
“第一篇新手篇
第 1 章 C 语言概述
1.1 C 语言的前世今生………………………………………………………………………………….. 2
1.2 C 语言的优势与劣势………………………………………………………………………………. 3
1.3 C 语言的当前标准………………………………………………………………………………….. 4
1.4 C 语言的编程机制………………………………………………………………………………….. 4
第2 章 C 语言的骨骼——基础数据类型
2.1 常量与变量…………………………………………………………………………………………….. 6
2.1.1 常量……………………………………………………………………………………………. 6
2.1.2 变量……………………………………………………………………………………………. 8
2.2 关键字和保留标识符……………………………………………………………………………… 9
2.3 整数类型………………………………………………………………………………………………. 11
2.4 浮点类型………………………………………………………………………………………………. 11
2.5 字符和字符串类型………………………………………………………………………………..13
2.6 类型之间的转换……………………………………………………………………………………14
2.7 程序注释……………………………………………………………………………………………….18
第3 章 C 语言的肉身——运算符
3.1 算术运算符……………………………………………………………………………………………20
3.2 赋值运算符……………………………………………………………………………………………213.3 逻辑运算符……………………………………………………………………………………………21
3.4 移位运算符……………………………………………………………………………………………22
3.5 关系运算符……………………………………………………………………………………………23
3.6 增量运算符……………………………………………………………………………………………24
3.7 位运算符……………………………………………………………………………………………….25
3.8 条件运算符……………………………………………………………………………………………26
3.9 逗号运算符……………………………………………………………………………………………27
3.10 运算符的优先级………………………………………………………………………………….28
第4 章 C 语言的血液——控制流
4.1 顺序流…………………………………………………………………………………………………..30
4.2 条件分支流……………………………………………………………………………………………31
4.3 循环控制流……………………………………………………………………………………………35
4.4 输入输出流……………………………………………………………………………………………38
4.4.1 scanf/printf 函数………………………………………………………………………….38
4.4.2 getchar/putchar 函数……………………………………………………………………40
4.4.3 gets/puts 函数……………………………………………………………………………..41
4.5 语句嵌套……………………………………………………………………………………………….42
第5 章 C 语言的灵魂——函数
5.1 函数定义……………………………………………………………………………………………….44
5.2 函数声明……………………………………………………………………………………………….45
5.3 函数参数……………………………………………………………………………………………….46
5.4 函数调用……………………………………………………………………………………………….48
5.5 函数递归……………………………………………………………………………………………….52
5.6 可变参数列表………………………………………………………………………………………..54
第6 章 丫丫学步——构建第一个程序
6.1 main 函数………………………………………………………………………………………………56
6.2 程序风格……………………………………………………………………………………………….58
6.3 第一个C 程序……………………………………………………………………………………….60
6.4 编译执行……………………………………………………………………………………………….61第二篇 进阶篇
第 7 章 成长的烦恼——数组和指针
7.1 一维数组……………………………………………………………………………………………….64
7.2 多维数组……………………………………………………………………………………………….65
7.3 变长数组……………………………………………………………………………………………….66
7.4 指针与地址……………………………………………………………………………………………68
7.5 指针数组……………………………………………………………………………………………….71
7.6 指向函数的指针……………………………………………………………………………………73
7.7 指向指针的指针……………………………………………………………………………………74
7.8 指针和数组的区别………………………………………………………………………………..75
第8 章 成长的积累——结构体、联合体及其他数据形式
8.1 结构体基础知识……………………………………………………………………………………77
8.2 结构的存储与对齐………………………………………………………………………………..79
8.3 结构数组……………………………………………………………………………………………….84
8.4 指向结构的指针……………………………………………………………………………………85
8.5 结构体自引用………………………………………………………………………………………..87
8.6 联合体基础知识……………………………………………………………………………………88
8.7 枚举类型……………………………………………………………………………………………….90
8.8 位字段…………………………………………………………………………………………………..93
8.9 typedef 简介…………………………………………………………………………………………..95
第9 章 成长的惊喜——预处理器
9.1 宏定义…………………………………………………………………………………………………..98
9.2 文件包含……………………………………………………………………………………………..102
9.3 条件编译……………………………………………………………………………………………..103
第10 章 成人礼——第一次构建多文件工程
10.1 多源文件编译……………………………………………………………………………………107
10.2 动态库和静态库……………………………………………………………………………….. 11310.2.1 静态库…………………………………………………………………………………… 114
10.2.2 动态库…………………………………………………………………………………… 115
第三篇实战篇
第 11 章 骨骼的发育——经典数据结构
11.1 栈………………………………………………………………………………………………………120
11.2 链表…………………………………………………………………………………………………..123
11.3 队列…………………………………………………………………………………………………..126
11.4 树………………………………………………………………………………………………………129
11.5 堆………………………………………………………………………………………………………134
11.6 散列表……………………………………………………………………………………………….137
11.7 图………………………………………………………………………………………………………139
11.7.1 邻接矩阵………………………………………………………………………………..141
11.7.2 邻接表……………………………………………………………………………………142
11.7.3 十字链表………………………………………………………………………………..142
11.7.4 邻接多重表…………………………………………………………………………….143
11.8 一个具体的例子——协议识别引擎……………………………………………………144
第12 章 社会经验的积累——经典设计模式
12.1 程序设计理念……………………………………………………………………………………151
12.2 设计模式原则……………………………………………………………………………………152
12.3 单件模式……………………………………………………………………………………………154
12.4 工厂模式……………………………………………………………………………………………157
12.5 抽象工厂模式……………………………………………………………………………………158
12.6 创建者模式………………………………………………………………………………………..161
12.7 原型模式……………………………………………………………………………………………162
12.8 适配器模式………………………………………………………………………………………..163
12.9 装饰器模式………………………………………………………………………………………..164
12.10 代理模式………………………………………………………………………………………….166
12.11 外观模式………………………………………………………………………………………….167
12.12 桥接模式………………………………………………………………………………………….169
12.13 组合模式………………………………………………………………………………………….170
目 录 V
12.14 享元模式………………………………………………………………………………………….172
12.15 策略模式………………………………………………………………………………………….174
12.16 模板方法模式………………………………………………………………………………….175
12.17 观察者模式………………………………………………………………………………………177
12.18 迭代器模式………………………………………………………………………………………179
12.19 责任链模式………………………………………………………………………………………180
12.20 命令模式………………………………………………………………………………………….182
12.21 备忘录模式………………………………………………………………………………………183
12.22 状态模式………………………………………………………………………………………….185
12.23 访问者模式………………………………………………………………………………………186
12.24 中介者模式………………………………………………………………………………………188
12.25 解释器模式………………………………………………………………………………………190
第13 章 成长的挫折——再论程序调试
13.1 断言…………………………………………………………………………………………………..194
13.2 万能的打印………………………………………………………………………………………..197
13.3 GDB 调试浅谈…………………………………………………………………………………..199
13.3.1 基础命令………………………………………………………………………………..199
13.3.2 进阶多线程命令……………………………………………………………………..205
13.3.3 调试core 文件………………………………………………………………………..206
13.4 符号表与反汇编………………………………………………………………………………..210
13.5 core 文件的配置…………………………………………………………………………………212
第14 章 适应社会——可移植性
14.1 为什么需要可移植…………………………………………………………………………….214
14.2 如何设计可移植的数据结构………………………………………………………………215
14.3 如何设计可移植的程序……………………………………………………………………..217
第四篇高手篇
第 15 章 找出自身的不足——性能调试
15.1 程序Cycle 的意义……………………………………………………………………………..220
VI C 语言从新手到高手
15.2 性能测试工具的使用…………………………………………………………………………221
15.3 变量的优化………………………………………………………………………………………..224
15.4 高性能函数………………………………………………………………………………………..228
15.5 嵌入式汇编………………………………………………………………………………………..234
15.6 编译优化……………………………………………………………………………………………237
第16 章 做事需未雨绸缪——Cache 技术
16.1 为什么要使用Cache ………………………………………………………………………….241
16.2 Cache 有多少级…………………………………………………………………………………242
16.3 Cache Line 的介绍……………………………………………………………………………..244
16.4 与Cache 结合的CPU 指令………………………………………………………………..246
16.5 Cache 的淘汰策略……………………………………………………………………………..250
16.6 让程序爱上Cache ……………………………………………………………………………..252
第17 章 找到亲近的人与事——NUMA 技术
17.1 NUMA 简介………………………………………………………………………………………254
17.2 NUMA 存储管理……………………………………………………………………………….257
17.3 NUMA 相关工具……………………………………………………………………………….258
17.4 NUMA 读写实测……………………………………………………………………………….260
17.5 让程序爱上NUMA……………………………………………………………………………261
第18 章 社会更新换代——大页技术
18.1 大页简介……………………………………………………………………………………………262
18.2 Linux 如何配置大页…………………………………………………………………………..263
18.3 简述Hugetlbfs 实现……………………………………………………………………………266
18.4 程序如何使用大页…………………………………………………………………………….269
第19 章 自我修炼——多线程技术
19.1 进程与线程的区别…………………………………………………………………………….271
19.2 多线程编程………………………………………………………………………………………..275
19.2.1 线程的创建和结束………………………………………………………………….275
19.2.2 线程同步………………………………………………………………………………..277
目 录 VII
19.2.3 线程互斥………………………………………………………………………………..281
19.2.4 定义线程独有变量………………………………………………………………….283
19.3 CPU 亲和性……………………………………………………………………………………….284
19.3.1 RTC 模式………………………………………………………………………………..287
19.3.2 Pipeline 模式…………………………………………………………………………..288
19.4 多线程调试………………………………………………………………………………………..289
附录A 术语表
附录 B 操作符优先级表
附录 C Linux 信号表”

常见问题
如何获取我想要的资源?
代找资源网不售卖任何资源,只代找资源,需要代找服务的小伙伴请添加客服QQ 1127720680

代找资源网不售卖任何资源,只提供代找服务

QQ客服

微信客服

微信客服
0

评论0

请先
显示验证码
没有账号?注册  忘记密码?