万本电子书0元读

万本电子书0元读

顶部广告

C语言核心技术(原书第2版)电子书 租阅

售       价:¥

纸质售价:¥109.80购买纸书

1237人正在读 | 3人评论 6.7

作       者:(德)彼得·普林茨(Peter Prinz),(德)托尼·克劳福德(Tony Crawford),袁野

出  版  社:机械工业出版社

出版时间:2017-06-01

字       数:64.6万

所属分类: 科技 > 计算机/网络 > 程序设计

温馨提示:此类商品不支持退换货,不支持下载打印

为你推荐

  • 读书简介
  • 目录
  • 累计评论(3条)
  • 读书简介
  • 目录
  • 累计评论(3条)
这本新版的经典O’Reilly参考书,对于C语言及其运行库中的每个特性给予了清晰、详细的解释,包括多线程、泛型宏,以及其他2011年C语言标准(C11)中的新功能。如果您想理解一个陌生函数的作用,以及标准库是如何规范它的执行,您可以在本书中找到答案。对于有经验的C与C++程序员,这本书也相当适用,它包含了GNU软件工具集中常用工具的使用说明。您将会学到如何使用GNUmake创建C程序,从C源代码编译获得执行程序,以及使用GNU调试器对程序行测试与调试。 这本新版的经典O’Reilly参考书,对于C语言及其运行库中的每个特性给予了清晰、详细的解释,包括多线程、泛型宏,以及其他2011年C语言标准(C11)中的新功能。如果您想理解一个陌生函数的作用,以及标准库是如何规范它的执行,您可以在本书中找到答案。对于有经验的C与C++程序员,这本书也相当适用,它包含了GNU软件工具集中常用工具的使用说明。您将会学到如何使用GNUmake创建C程序,从C源代码编译获得执行程序,以及使用GNU调试器对程序行测试与调试。
目录展开

作者介绍

封面介绍

O’Reilly Media,Inc.介绍

译者序

前言

本书的组织方式

推荐阅读

本书约定

使用代码示例

Safari Books Online

如何联系我们

致谢

第一部分 语言

第1章|chapter 1 C语言基础

1.1 C语言特性

1.2 C语言程序的结构

1.3 源代码文件

1.4 注释

1.5 字符集

1.5.1 宽字符和多字节字符

1.5.2 通用字符名称

1.5.3 双字符组和三字符组

1.6 标识符

1.6.1 标识符的命名空间

1.6.2 标识符作用域

1.7 C编译器运行原理

1.7.1 C编译器的编译阶段

1.7.2 标记

第2章|chapter 2 数据类型

2.1 数据类型分类

2.2 整数类型

在标准头文件中定义的整数类型

确定位长的整数类型(C99)

2.3 浮点类型

2.4 复数浮点类型

2.5 枚举类型

2.6 void类型

2.6.1 void用于函数声明

2.6.2 void类型表达式

2.6.3 指向void的指针

2.7 对象在内存中的对齐方式

第3章|chapter 3 字面量

3.1 整数常量

3.2 浮点常量

3.2.1 十进制浮点常量

3.2.2 十六进制浮点常量

3.3 字符常量

3.3.1 字符常量的类型和值

3.3.2 转义序列

3.4 字符串字面量

第4章|chapter 4 类型转换

4.1 算术类型的转换

4.1.1 类型转换的等级

4.1.2 整数提升

4.1.3 寻常算术转换

4.1.4 其他隐式的类型转换

4.1.5 算术类型转换的结果

4.2 非算术类型的转换

4.2.1 数组和函数指示符

4.2.2 显式的指针转换

4.2.3 隐式的指针转换

4.2.4 在指针和整数类型之间转换

第5章|chapter 5 表达式和运算符

5.1 如何计算表达式

5.1.1 泛型选择(C11)

5.1.2 左值

5.1.3 副作用和序列点

5.1.4 运算符优先级和结合律

5.2 运算符细节

5.2.1 算术运算符

5.2.2 赋值运算符

5.2.3 自增和自减运算符

5.2.4 比较运算符

5.2.5 逻辑运算符

5.2.6 位运算符

5.2.7 内存寻址运算符

5.2.8 其他运算符

5.3 常量表达式

5.3.1 整数常量表达式

5.3.2 其他常量表达式

第6章|chapter 6 语句

6.1 表达式语句

6.2 语句块

6.3 循环

6.3.1 while循环

6.3.2 for循环

6.3.3 do...while循环

6.3.4 循环嵌套

6.4 选择语句

6.4.1 if语句

6.4.2 switch语句

6.5 无条件跳转

6.5.1 break语句

6.5.2 continue语句

6.5.3 goto语句

6.5.4 return语句

第7章|chapter 7 函数

7.1 函数定义

7.1.1 函数与存储类修饰符

7.1.2 K&R风格的函数定义

7.1.3 函数参数

7.1.4 将数组作为函数参数

7.1.5 main()函数

7.2 函数声明

7.2.1 声明可选参数

7.2.2 声明长度可变的数组参数

7.3 函数如何被执行

7.4 指针作为参数和返回值

7.5 内联函数

7.6 无返回函数

7.7 递归函数

7.8 可变参数函数

第8章|chapter 8 数组

8.1 定义数组

8.1.1 固定长度数组

8.1.2 长度可变数组

8.2 获取数组元素

8.3 初始化数组

8.3.1 编写初始化列表

8.3.2 初始化特定元素

8.4 字符串

8.5 多维数组

8.5.1 矩阵

8.5.2 声明多维数组

8.5.3 初始化多维数组

8.6 数组作为函数参数

第9章|chapter 9 指针

9.1 声明指针

9.1.1 空指针

9.1.2 void指针

9.1.3 初始化指针

9.2 指针运算

9.2.1 使用指针读取与修改对象

9.2.2 修改和比较指针

9.3 指针和类型限定符

9.3.1 常量指针和指向常量对象的指针

9.3.2 受限指针

9.4 数组的指针和指针的数组

9.4.1 数组指针

9.4.2 指针数组

9.5 指向函数的指针

第10章|chapter 10 结构、联合与位字段

10.1 结构

10.1.1 定义结构类型

10.1.2 结构对象和typedef名称

10.1.3 不完整结构类型

10.1.4 获取结构成员

10.1.5 初始化结构

10.1.6 初始化特定成员

10.1.7 内存中的结构成员

10.1.8 弹性结构成员

10.1.9 指针作为结构成员

10.2 联合

10.2.1 定义联合类型

10.2.2 初始化联合

10.3 匿名结构与联合

10.4 位字段

第11章|chapter 11 声明

11.1 对象与函数声明

11.1.1 示例

11.1.2 存储类修饰符

11.1.3 类型限定符

11.1.4 声明和定义

11.1.5 复杂声明符

11.2 类型名称

11.3 typedef声明

11.4 _Static_assert声明

11.5 标识符的链接

11.5.1 外部链接

11.5.2 内部链接

11.5.3 无链接

11.6 对象的存储周期

11.6.1 静态存储周期

11.6.2 线程存储周期

11.6.3 动态存储周期

11.7 初始化

11.7.1 隐式的初始化

11.7.2 显式的初始化

第12章|chapter 12 动态内存管理

12.1 动态内存分配

12.2 已分配内存的特性

12.3 调整内存大小和释放内存

12.4 通用二叉树

12.5 特性

12.6 二叉树的实现

12.6.1 创建空树

12.6.2 插入新数据

12.6.3 在树中寻找数据

12.6.4 从树中删除节点

12.6.5 遍历一个树

12.6.6 一个简单的应用

第13章|chapter 13 输入和输出

13.1 流

13.1.1 文本流

13.1.2 二进制流

13.2 文件

13.2.1 文件位置

13.2.2 缓冲区

13.2.3 标准流

13.3 打开和关闭文件

13.3.1 打开文件

13.3.2 访问模式

13.3.3 关闭文件

13.4 读操作和写操作

13.4.1 字节导向流和宽字符导向流

13.4.2 错误处理I/O

13.4.3 无格式I/O

13.4.4 格式化输出

13.4.5 格式化输入

13.5 文件随机访问

13.5.1 获取当前文件位置

13.5.2 设置文件访问位置

第14章|chapter 14 多线程

14.1 线程

14.1.1 创建线程

14.1.2 其他线程函数

14.2 访问共享数据

14.2.1 互斥

14.2.2 原子对象

14.2.3 原子操作

14.2.4 内存次序

14.2.5 栅栏

14.3 线程间的通信:条件变量

14.4 线程对象和线程存储

14.4.1 使用线程对象

14.4.2 使用线程存储

第15章|chapter 15 预处理命令

15.1 插入头文件的内容

15.1.1 预处理器如何找到头文件

15.1.2 嵌套的#include命令

15.2 定义和使用宏

15.2.1 没有参数的宏

15.2.2 带参数的宏

15.2.3 在宏内使用宏

15.2.4 宏的作用域和重新定义

15.3 泛型宏

15.4 条件式编译

15.4.1 #if和#elif命令

15.4.2 defined运算符

15.4.3 #ifdef和#ifndef命令

15.5 定义行号

15.6 生成错误消息

15.7 #pragma命令

15.8 _Pragma运算符

15.9 预定义的宏

第二部分 标准库

第16章|chapter 16 标准头

16.1 使用标准头

16.1.1 运行环境

16.1.2 函数和宏的调用

16.1.3 保留的标识符

16.2 边界检查函数

16.2.1 有效性

16.2.2 运行约束

16.3 标准头的内容

第17章|chapter 17 函数简介

17.1 输入和输出

17.2 数学函数

17.2.1 整数类型相关的数学函数

17.2.2 浮点函数

17.2.3 类函数宏

17.2.4 算术运算相关的pragma

17.2.5 浮点环境

17.2.6 错误处理

17.3 字符分类和转换

17.3.1 字符分类

17.3.2 字符映射

17.4 字符串处理

17.5 多字节字符

17.6 在数字与字符串之间转换

17.7 搜索和排序

17.8 内存区域处理

17.9 动态内存管理

17.10 日期和时间

17.11 进程控制

17.11.1 与操作系统交互

17.11.2 信号

17.12 国际化

17.13 非本地跳转

17.14 多线程(C11)

17.14.1 线程函数

17.14.2 原子操作

17.15 调试

17.16 错误消息

第18章|chapter 18 标准库函数

第三部分 基本工具

第19章|chapter 19 使用GCC编译C程序

19.1 GNU编译器套件

19.2 获取和安装GCC

19.3 使用GCC编译C程序

19.3.1 逐步实现

19.3.2 多个输入文件

19.3.3 动态链接和共享对象文件

19.3.4 独立程序

19.4 C方言

19.5 编译器警告

19.6 优化

19.6.1 -O等级

19.6.2 -f标记

19.6.3 浮点优化

19.6.4 适用于特定架构的选项

19.6.5 为何不优化

19.7 调试

19.8 剖析

19.9 选项和环境变量汇总

19.9.1 命令行选项

19.9.2 环境变量

第20章|chapter 20 使用make构建C程序

20.1 目标、依赖和命令

20.2 Makefile

20.3 规则

20.3.1 命令脚本

20.3.2 模式化的规则

20.3.3 后缀规则

20.3.4 内置规则

20.3.5 隐式规则链

20.3.6 双冒号规则

20.4 注释

20.5 变量

20.5.1 赋值运算符

20.5.2 变量和空白符

20.5.3 目标专用的变量赋值

20.5.4 自动变量

20.5.5 其他内置变量

20.5.6 环境变量

20.6 伪目标

20.7 其他目标属性

20.8 宏

20.9 函数

20.9.1 内置函数

20.9.2 用户自定义函数

20.10 命令

20.10.1 条件

20.10.2 include

20.10.3 其他命令

20.11 执行make命令

20.11.1 生成头文件依赖关系

20.11.2 递归式make命令

20.11.3 命令行选项

20.11.4 用作运行时选项的特殊目标

20.11.5 生成Makefile规则的GCC选项

第21章|chapter 21 使用GDB调试C程序

21.1 安装GDB

21.2 调试过程示例

21.2.1 符号信息

21.2.2 找出错误

21.3 启动GDB

21.3.1 命令行参数

21.3.2 命令行选项

21.3.3 初始化文件

21.4 使用GDB命令

21.4.1 命令补充

21.4.2 显示命令帮助说明

21.4.3 状态信息

21.4.4 在调试器中执行一个程序

21.4.5 显示源代码

21.4.6 使用断点

21.4.7 在中断后继续执行

21.4.8 分析栈

21.4.9 显示数据

21.4.10 观测点:观察对变量的操作

21.5 在GDB内分析核心文件

第22章|chapter 22 使用IDE

22.1 针对C语言的IDE

22.2 针对C/C++的Eclipse IDE

22.2.1 安装Eclipse CDT

22.2.2 运行Eclipse

22.2.3 透视图和视图

22.3 使用Eclipse开发一个C程序

22.3.1 创建一个新的C项目

22.3.2 编辑

22.3.3 编译和运行程序

22.3.4 项目属性

22.4 使用Eclipse调试一个C程序

22.4.1 启动调试器

22.4.2 设置断点

22.4.3 在调试器中控制程序的执行

22.5 关于Eclipse的更多信息

累计评论(3条) 4个书友正在讨论这本书 发表评论

发表评论

发表评论,分享你的想法吧!

买过这本书的人还买过

读了这本书的人还在读

回顶部