图书介绍
C语言编程魔法书 基于C11标准PDF|Epub|txt|kindle电子书版本网盘下载
![C语言编程魔法书 基于C11标准](https://www.shukui.net/cover/48/30424354.jpg)
- 陈轶著 著
- 出版社: 北京:机械工业出版社
- ISBN:9787111565215
- 出版时间:2017
- 标注页数:504页
- 文件大小:51MB
- 文件页数:526页
- 主题词:C语言-程序设计
PDF下载
下载说明
C语言编程魔法书 基于C11标准PDF格式电子书版下载
下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!
(文件页数 要大于 标注页数,上中下等多册电子书除外)
注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具
图书目录
第一篇 预备知识篇2
第1章 C魔法概览2
1.1 例说编程语言2
1.2 用C语言编程的基本注意事项6
1.3 主流C语言编译器介绍8
1.4 关于GNU规范的语法扩展10
1.5 用C语言构建一个可执行程序的流程11
1.6 本章小结12
第2章 学习C语言的预备知识14
2.1 计算机体系结构简介14
2.1.1 贮存器15
2.1.2 存储器15
2.1.3 寄存器16
2.1.4 计算单元16
2.1.5 程序执行流程16
2.2 整数在计算机中的表示17
2.2.1 原码表示法18
2.2.2 补码表示法19
2.2.3 八进制数与十六进制数20
2.3 浮点数在计算机中的表示22
2.4 地址与字节对齐24
2.5 字符编码25
2.6 大端与小端28
2.7 按位逻辑运算28
2.8 移位操作30
2.8.1 算术左移与逻辑左移30
2.8.2 逻辑右移30
2.8.3 算术右移31
2.8.4 循环右移32
2.9 本章小结32
第3章 C语言编程的环境搭建33
3.1 Windows操作系统下搭建C语言编程环境33
3.1.1 安装Visual Studio Community 201734
3.1.2 安装MinGW编译器40
3.1.3 安装LLVM Clang编译器43
3.2 macOS系统下搭建C语言编程环境45
3.3 本章小结51
第二篇 基础语法篇54
第4章 C语言中的基本元素54
4.1 C语言中的字符集55
4.2 C语言中的token56
4.2.1 C语言中的标识符57
4.2.2 C语言中的关键字58
4.2.3 C语言中的常量与字符串字面量60
4.2.4 C语言中的标点符号60
4.3 关于C语言中的“对象”62
4.4 C语言中的“副作用”63
4.5 C语言标准库中的printf函数63
4.6 本章小结65
第5章 基本数据类型66
5.1 整数类型66
5.1.1 int类型67
5.1.2 short类型68
5.1.3 long类型69
5.1.4 longlong类型71
5.1.5 布尔类型72
5.1.6 字符类型73
5.1.7 宽字符以及Unicode字符类型77
5.1.8 size t与ptrdifft类型81
5.1.9 C语言中的标准整数类型82
5.2 浮点类型84
5.3 数据精度与类型转换86
5.3.1 整数晋升87
5.3.2 带符号与无符号整数之间的转换87
5.3.3 浮点数与浮点数的转换以及浮点数与整数之间的转换90
5.4 C语言基本运算操作符92
5.4.1 加、减、乘、除与求模运算操作符92
5.4.2 按位逻辑操作符93
5.4.3 自增、自减操作符94
5.4.4 关系操作符、相等性操作符与逻辑操作符95
5.4.5 移位操作符96
5.4.6 圆括号操作符97
5.5 sizeof操作符98
5.6 投射操作符99
5.7 本章小结101
第6章 用户自定义类型102
6.1 枚举类型102
6.2 结构体类型105
6.2.1 结构体概述105
6.2.2 用结构体创建对象并访问其成员107
6.2.3 结构体复合字面量110
6.3 联合体类型113
6.4 位域117
6.4.1 位域的一般特性118
6.4.2 位域成员的存放与布局120
6.4.3 匿名位域122
6.4.4 位域使用示例124
6.5 字节对齐与字节填充125
6.5.1 _Alignof操作符125
6.5.2 _Alignas对齐说明符126
6.5.3 结构体成员的字节对齐与字节填充129
6.6 复数类型133
6.7 本章小结135
第7章 C语言的数组与指针136
7.1 一维数组136
7.2 多维数组141
7.3 变长数组145
7.4 一级指针与对象地址147
7.4.1 地址与指针的基本概念148
7.4.2 访问指针对象所指对象的内容149
7.4.3 指针对象的其他操作150
7.5 多级指针153
7.6 指向用户自定义类型的指针156
7.7 指针与数组的关系159
7.8 指向数组的指针162
7.9 void类型、指向void类型的指针与空指针165
7.10 字符数组与字符串字面量167
7.11 完整与不完整类型170
7.12 灵活的数组成员171
7.13 本章小结173
第8章 C语言的控制流语句174
8.1 逗号表达式174
8.2 条件表达式176
8.3 if-else语句176
8.4 switch-case语句179
8.5 while与do-while迭代语句182
8.6 for迭代语句187
8.7 goto语句189
8.8 本章小结192
第9章 C语言的函数193
9.1 函数的声明与定义194
9.2 函数调用与实现196
9.2.1 函数调用的顺序点197
9.2.2 函数的栈空间200
9.2.3 函数的参数传递与返回201
9.2.4 通过形参修改实参的值204
9.3 数组类型作为函数形参205
9.4 带有不定参数类型及个数的函数声明与调用209
9.5 函数的递归调用212
9.6 内联函数218
9.7 函数的返回类型与无返回函数221
9.8 指向函数的指针223
9.9 C语言中的主函数main226
9.10 函数与函数调用作为sizeof操作符228
9.11 本章小结229
第10章 C语言预处理器230
10.1 宏定义231
10.1.1 宏的基本使用232
10.1.2 宏定义中的#操作符234
10.1.3 宏定义中的##操作符236
10.1.4 宏替换238
10.1.5 可变参数的宏定义240
10.2 C语言中预定义的宏243
10.2.1 C语言强制要求的预定义宏243
10.2.2 环境宏244
10.2.3 条件特征宏245
10.2.4 主流编译器及平台预定义的宏246
10.3 条件预编译247
10.4 源文件包含预处理指示符251
10.5 #error预处理指示符256
10.6 #line预处理指示符256
10.7 #undef预处理指示符257
10.8 pragma预编译指示符与操作符258
10.9 空指示符与C语言中的程序注释260
10.10 本章小结262
第11章 C语言程序的编译上下文263
11.1 C语言程序中的作用域和名字空间263
11.1.1 文件作用域264
11.1.2 函数作用域265
11.1.3 函数原型作用域266
11.1.4 语句块作用域267
11.1.5 标识符的重定义与作用域的叠交269
11.1.6 标识符的名字空间272
11.2 全局对象与函数275
11.3 静态对象与函数277
11.4 局部对象280
11.5 对象的存储与生命周期282
11.6 _Thread_local对象285
11.7 本章小结286
第三篇 高级语法篇290
第12章 C语言中的类型限定符290
12.1 const限定符290
12.1.1 const限定符修饰普通对象291
12.1.2 const限定符修饰数组元素293
12.1.3 const限定符修饰指针类型对象294
12.1.4 const限定符修饰函数形参类型为数组的对象299
12.1.5 类型限定符的本质含义301
12.2 volatile限定符302
12.3 restrict限定符304
12.4 Atomic限定符307
12.5 本章小结314
第13章 C语言的类型系统316
13.1 对象类型与函数类型316
13.2 对声明符的进一步说明318
13.3 更复杂的声明322
13.3.1 将某一类型转换为指向该类型的指针322
13.3.2 判定当前类型属于哪种对象类型322
13.3.3 复杂复合类型的判断324
13.4 typedef类型定义327
13.4.1 typedef的一般使用327
13.4.2 typedef与类型限定符相结合的使用330
13.4.3 用typedef来定义结构体与联合体的类型332
13.5 本章小结335
第14章 C1 1标准中的表达式、左值与求值顺序336
14.1 常量表达式338
14.2 泛型选择表达式340
14.3 静态断言343
14.4 C语言中的左值344
14.5 C语言中表达式的求值顺序348
14.6 C语言中的语句352
14.7 本章小结355
第15章 函数调用约定与ABI356
15.1 Windows操作系统环境下x86处理器的函数调用约定357
15.1.1 Windows操作系统下32位x86执行模式的函数调用约定357
15.1.2 Windows操作系统下64位x86执行模式的函数调用约定363
15.2 U nix/Linux操作系统环境下x86处理器的函数调用约定368
15.3 ARM处理器环境下的函数调用约定370
15.3.1 AArch32架构环境下的函数调用约定370
15.3.2 AArch64架构环境下的函数调用约定373
15.4 本章小结375
第16章 创建静态库与动态库376
16.1 Widows系统下创建静态库与动态库377
16.1.1 Windows系统下创建并使用静态库377
16.1.2 Windows系统上创建并使用动态库379
16.2 macOS系统下创建静态库与动态库382
16.2.1 macOS系统下创建并使用静态库383
16.2.2 macOS系统下创建并使用动态库386
16.3 Linux系统下创建并使用静态库与动态库390
16.3.1 Linux系统下创建并使用静态库文件390
16.3.2 Linux系统下创建并使用动态库391
16.4 本章小结393
第四篇 语法扩展篇396
第17章 GCC对C11标准的语法扩展396
17.1 在表达式中使用复合语句与声明397
17.2 声明语句块作用域的跳转标签398
17.3 跳转标签作为值401
17.4 嵌套函数402
17.5 使用typeof来获取对象类型405
17.6 使用_autotype做类型自动推导409
17.7 对复数操作的扩展411
17.8 半精度浮点类型412
17.9 长度为零的数组413
17.10 对可变参数个数的宏的语法扩展415
17.11 case语句中使用范围表达式417
17.12 投射到一个联合体类型418
17.13 使用二进制整数字面量419
17.14 使用_attribute_指定函数、对象与类型的属性420
17.14.1 _attribute_用于修饰函数的属性422
17.14.2 _attribute_用于修饰对象的属性440
17.14.3 _attribute_用于修饰类型的属性443
17.15 本章小结444
第18章 Clang编译器对C11标准的扩展445
18.1 特征检查宏446
18.2 _Nullable与_Nonnull446
18.3 函数重载448
18.4 Blocks语法449
18.5 本章小结462
第19章 对C语言的未来展望463
19.1 C语言中的属性465
19.2 fallthrough属性466
19.3 数组片段467
19.3.1 数组片段的赋值操作468
19.3.2 数组片段的算术计算操作470
19.3.3 数组片段用于函数调用的情况471
19.4 其他语法特性472
19.5 本章小结472
第五篇 项目实践篇474
第20章 制作UTF-8与UTF-16编码字符串的转码器474
20.1 UTF-8字符编码格式474
20.2 UTF-16字符编码格式476
20.3 代码示例478
20.4 本章小结487
第21章 制作控制台计算器488
21.1 对数字的解析489
21.2 对操作符的优先级处理489
21.3 代码示例491
21.4 本章小结504