现代C:概念剖析和编程实践
- ISBN:9787111681960
- 装帧:一般胶版纸
- 册数:暂无
- 重量:暂无
- 开本:16开
- 页数:334
- 出版时间:2021-07-01
- 条形码:9787111681960 ; 978-7-111-68196-0
本书特色
适读人群 :C语言程序员及相关爱好者C标准委员会积极审查和扩展该语言,在2018年发布了更新的C标准。在本书中,Jens Gustedt(C标准文档ISO/IEC 9899:2018的联合编辑)将教你用经过验证的语言编写相关程序所需的技能和特性。看到一辆赛车或加速它的引擎是一回事。坐在副驾驶位并与职业车手同乘是完全不同的体验,这本书属于后者。 本书基于新的C标准,揭示了这种久经考验的语言的现代视角。本书的目的是改变一种普遍的态度——C语言很少激发用户学习更高层次知识的积极性,所以本书的内容分为4级,以反映对C语言和编程的熟悉程度。尽管本书会提出许多普遍适用的思想,但本书主要讨论C语言中特有的或者在C语言编程时具有特殊价值的概念和实践。 无论你是刚开始使用C语言还是已经有了非常丰富的经验,通过阅读本书,你的C语言编程技能都将提升到一个新的高度。这本非常全面的指南是按级别来组织的,这使你很容易找到适合自己的章节,从而更快获得更大的收益。 ---------------------------------------- 作为一种有50年历史的编程语言,C语言还是非常现代的。无论是编写嵌入式代码、低级系统例程,还是高性能应用程序,C语言都能应对挑战。本书基于新的C标准,从现代视角,深刻剖析了这种久经考验的语言的概念及实践应用。 本书介绍C编程,强调了这种强大语言独特和新颖的特性。为了满足初级C程序员的需求,本书从结构、语法、编译和执行等基础知识开始。然后,你将进一步了解控制结构、数据类型、操作符和函数,从而更深入地了解在底层发生的事情。在*后几章中,你将探索性能、可重入性、原子性、线程和泛类型编程。你将在编写代码的同时强化概念并磨炼技能。 本书的读者对象是可以轻松使用Java、Python、Ruby、C#、C++或C语言编写简单程序的程序员。 主要内容● 运算符和函数● 指针、线程和原子性● C的内存模型● 动手练习
内容简介
这本书按级别组织,编号从0到3。初始级别0,名为“邂逅”,它将总结使用C进行编程的基础知识。它的主要作用是提醒你我们所提到的主要概念,并使你熟悉C应用的特殊词汇。 第1级“相识”详细描述了大多数主要概念和特性,如控制结构、数据类型、操作符和函数。 第2级“相知”是C语言的核心,完全解释了指针,使你熟悉C的内存模型,并使你能够理解C的大部分库函数接口。 第3级“深入”详细介绍了特定主题,如性能、可重复输入、原子性、线程和泛类型编程。
目录
【第0级 邂逅】
第1章 入门 2
1.1 命令式编程 3
1.2 编译和运行 4
第2章 程序的主要结构 8
2.1 语法 8
2.2 声明 10
2.3 定义 12
2.4 语句 13
2.4.1 循环 14
2.4.2 函数调用 14
2.4.3 函数返回 15
【第1级 相识】
第3章 一切都和控制有关 21
3.1 条件执行 21
3.2 循环 24
3.3 多重选择 28
第4章 表达式计算 31
4.1 算术 33
4.1.1 +、-和* 34
4.1.2 除法和余数 34
4.2 修改对象的运算符 35
4.3 布尔情景 36
4.3.1 比较 36
4.3.2 逻辑 37
4.4 三元或条件运算符 38
4.5 求值顺序 39
第5章 基本值和数据 41
5.1 抽象状态机 42
5.1.1 值 43
5.1.2 类型 44
5.1.3 二进制表示和抽象状态机 44
5.1.4 优化 45
5.2 基本类型 46
5.3 指定值 49
5.4 隐式转换 52
5.5 初始值设定 55
5.6 命名常量 56
5.6.1 只读对象 57
5.6.2 枚举 58
5.6.3 宏 59
5.6.4 复合字面量 60
5.7 二进制表示 61
5.7.1 无符号整型 61
5.7.2 位集和按位运算符 62
5.7.3 位移运算符 63
5.7.4 布尔值 64
5.7.5 有符号整型 64
5.7.6 固定宽度整型 67
5.7.7 浮点数据 68
第6章 派生数据类型 70
6.1 数组 71
6.1.1 数组声明 71
6.1.2 数组操作 72
6.1.3 数组长度 72
6.1.4 数组作为参数 73
6.1.5 字符串是特殊的 74
6.2 指针作为不透明类型 77
6.3 结构 79
6.4 类型的新名称:类型别名 85
第7章 函数 87
7.1 简单函数 88
7.2 main是特殊的函数 90
7.3 递归 91
第8章 C库函数 98
8.1 C库函数的一般特性及功能 98
8.1.1 头文件 99
8.1.2 接口 100
8.1.3 错误检查 100
8.1.4 边界检查接口 101
8.1.5 平台前提条件 102
8.2 数学 103
8.3 输入、输出和文件操作 105
8.3.1 无格式文本输出 105
8.3.2 文件和流 107
8.3.3 文本IO 109
8.3.4 格式化输出 110
8.3.5 无格式文本输入 113
8.4 字符串处理和转换 115
8.5 时间 119
8.6 运行时环境设置 123
8.7 程序终止和断言 125
【第2级 相知】
第9章 风格 130
9.1 格式 131
9.2 命名 132
第10章 组织与文档 136
10.1 接口文档 137
10.2 实现 139
10.2.1 宏 140
10.2.2 纯函数 142
第11章 指针 147
11.1 指针操作 148
11.1.1 操作符的地址和对象 148
11.1.2 指针加法 149
11.1.3 指针减法和差 151
11.1.4 指针合法性 153
11.1.5 空指针 155
11.2 指针和结构 156
11.3 指针和数组 159
11.3.1 数组访问和指针访问是一样的 160
11.3.2 数组参数和指针参数是一样的 160
11.4 函数指针 161
第12章 C内存模型 167
12.1 统一内存模型 168
12.2 union 169
12.3 内存和状态 171
12.4 指向非特定对象的指针 172
12.5 显式转换 173
12.6 有效类型 175
12.7 对齐 176
第13章 存储 179
13.1 malloc和友元 180
13.1.1 具有可变数组大小的
一个完整例子 181
13.1.2 确保动态分配的一致性 188
13.2 存储持续时间、生命周期和可见度 189
13.2.1 静态存储持续时间 192
13.2.2 自动存储持续时间 193
13.3 题外话:在定义对象之前使用对象 194
13.4 初始化 196
13.5 题外话:机器模型 198
第14章 涉及更多的处理和IO 202
14.1 文本处理 202
14.2 格式化输入 209
14.3 扩展字符集 210
14.4 二进制流 218
14.5 错误检查和清理 219
【第3级 深入】
第15章 性能 226
15.1 内联函数 228
15.2 使用restrict限定符 232
15.3 测量和检验 233
第16章 类似函数的宏 242
16.1 类似函数的宏如何工作 243
16.2 参数检查 245
16.3 访问调用上下文 249
16.4 默认参数 252
16.5 可变长度参数列表 253
16.5.1 可变长参数宏 253
16.5.2 绕道:可变长参数函数 258
16.6 泛类型编程 261
第17章 控制流中的变化 268
17.1 一个复杂的例子 270
17.2 排序 272
17.3 短跳转 275
17.4 函数 276
17.5 长跳转 277
17.6 信号处理程序 281
第18章 线程 291
18.1 简单的线程间控制 294
18.2 无竞争初始化和销毁 296
18.3 线程本地数据 299
18.4 临界数据和临界区 299
18.5 通过条件变量进行通信 302
18.6 更复杂的线程管理 307
第19章 原子访问和内存一致性 310
19.1 “以前发生的”关系 311
19.2 C库调用提供同步 314
19.3 顺序的一致性 316
19.4 其他一致性模型 318
要点 320
参考文献 333
作者简介
Jens Gustedt在波恩大学和柏林工业大学完成了他的数学学业。他当时的研究涉及离散数学与高效计算的交叉。自1998年以来,他一直在法国国家信息与自动化研究所(INRIA)担任高级科学家,先是在法国南锡的LORIA实验室工作,自2013年起在斯特拉斯堡的ICube实验室工作。 在整个职业生涯中,他的大部分科学研究一直伴随着软件的发展,一开始主要是C++,然后又专注于C。他现在作为ISO委员会JTC1/SC22/WG14的专家为AFNOR服务,并且是C标准文档ISO/IEC 9899:2018的联合编辑。他还有一个成功的博客,涉及C语言编程和相关主题:https://gustedt.wordpress.com。
-
有限与无限的游戏:一个哲学家眼中的竞技世界
¥37.4¥68.0 -
硅谷之火-人与计算机的未来
¥14.3¥39.8 -
全图解零基础word excel ppt 应用教程
¥12.0¥48.0 -
机器学习
¥59.4¥108.0 -
深度学习的数学
¥43.5¥69.0 -
智能硬件项目教程:基于ARDUINO(第2版)
¥31.9¥65.0 -
元启发式算法与背包问题研究
¥38.2¥49.0 -
AI虚拟数字人:商业模式+形象创建+视频直播+案例应用
¥62.9¥89.8 -
UNIX环境高级编程(第3版)
¥164.9¥229.0 -
剪映AI
¥52.8¥88.0 -
深度学习高手笔记 卷2:经典应用
¥90.9¥129.8 -
纹样之美:中国传统经典纹样速查手册
¥77.4¥109.0 -
UG NX 12.0数控编程
¥24.8¥45.0 -
MATLAB计算机视觉与深度学习实战(第2版)
¥90.9¥128.0 -
界面交互设计理论研究
¥30.8¥56.0 -
UN NX 12.0多轴数控编程案例教程
¥25.8¥38.0 -
微机组装与系统维护技术教程(第二版)
¥37.8¥43.0 -
Go 语言运维开发 : Kubernetes 项目实战
¥48.2¥79.0 -
明解C语言:实践篇
¥62.9¥89.8 -
Linux服务器架设实战(Linux典藏大系)
¥84.5¥119.0