展开全部

主编推荐语

这本书帮你完全掌握新标准的C语言编程,并且对C语言设计思想、实现方式也能有个大概的了解。

内容简介

本书主要讲解C11标准的语法内容,并且从整个编译、连接到加载过程都会涉及。同时在后会分别介绍GCC编译器与Clang编译器的C语言语法扩展。

目录

  • 版权信息
  • 前言
  • 第一篇 预备知识篇
  • 第1章 C魔法概览
  • 1.1 例说编程语言
  • 1.2 用C语言编程的基本注意事项
  • 1.3 主流C语言编译器介绍
  • 1.4 关于GNU规范的语法扩展
  • 1.5 用C语言构建一个可执行程序的流程
  • 1.6 本章小结
  • 第2章 学习C语言的预备知识
  • 2.1 计算机体系结构简介
  • 2.1.1 贮存器
  • 2.1.2 存储器
  • 2.1.3 寄存器
  • 2.1.4 计算单元
  • 2.1.5 程序执行流程
  • 2.2 整数在计算机中的表示
  • 2.2.1 原码表示法
  • 2.2.2 补码表示法
  • 2.2.3 八进制数与十六进制数
  • 2.3 浮点数在计算机中的表示
  • 2.4 地址与字节对齐
  • 2.5 字符编码
  • 2.6 大端与小端
  • 2.7 按位逻辑运算
  • 2.8 移位操作
  • 2.8.1 算术左移与逻辑左移
  • 2.8.2 逻辑右移
  • 2.8.3 算术右移
  • 2.8.4 循环右移
  • 2.9 本章小结
  • 第3章 C语言编程的环境搭建
  • 3.1 Windows操作系统下搭建C语言编程环境
  • 3.1.1 安装Visual Studio Community 2017
  • 3.1.2 安装MinGW编译器
  • 3.1.3 安装LLVM Clang编译器
  • 3.2 macOS系统下搭建C语言编程环境
  • 3.3 本章小结
  • 第二篇 基础语法篇
  • 第4章 C语言中的基本元素
  • 4.1 C语言中的字符集
  • 4.2 C语言中的token
  • 4.2.1 C语言中的标识符
  • 4.2.2 C语言中的关键字
  • 4.2.3 C语言中的常量与字符串字面量
  • 4.2.4 C语言中的标点符号
  • 4.3 关于C语言中的“对象”
  • 4.4 C语言中的“副作用”
  • 4.5 C语言标准库中的printf函数
  • 4.6 本章小结
  • 第5章 基本数据类型
  • 5.1 整数类型
  • 5.1.1 int类型
  • 5.1.2 short类型
  • 5.1.3 long类型
  • 5.1.4 long long类型
  • 5.1.5 布尔类型
  • 5.1.6 字符类型
  • 5.1.7 宽字符以及Unicode字符类型
  • 5.1.8 size_t与ptrdiff_t类型
  • 5.1.9 C语言中的标准整数类型
  • 5.2 浮点类型
  • 5.3 数据精度与类型转换
  • 5.3.1 整数晋升
  • 5.3.2 带符号与无符号整数之间的转换
  • 5.3.3 浮点数与浮点数的转换以及浮点数与整数之间的转换
  • 5.4 C语言基本运算操作符
  • 5.4.1 加、减、乘、除与求模运算操作符
  • 5.4.2 按位逻辑操作符
  • 5.4.3 自增、自减操作符
  • 5.4.4 关系操作符、相等性操作符与逻辑操作符
  • 5.4.5 移位操作符
  • 5.4.6 圆括号操作符
  • 5.5 sizeof操作符
  • 5.6 投射操作符
  • 5.7 本章小结
  • 第6章 用户自定义类型
  • 6.1 枚举类型
  • 6.2 结构体类型
  • 6.2.1 结构体概述
  • 6.2.2 用结构体创建对象并访问其成员
  • 6.2.3 结构体复合字面量
  • 6.3 联合体类型
  • 6.4 位域
  • 6.4.1 位域的一般特性
  • 6.4.2 位域成员的存放与布局
  • 6.4.3 匿名位域
  • 6.4.4 位域使用示例
  • 6.5 字节对齐与字节填充
  • 6.5.1 _Alignof操作符
  • 6.5.2 _Alignas对齐说明符
  • 6.5.3 结构体成员的字节对齐与字节填充
  • 6.6 复数类型
  • 6.7 本章小结
  • 第7章 C语言的数组与指针
  • 7.1 一维数组
  • 7.2 多维数组
  • 7.3 变长数组
  • 7.4 一级指针与对象地址
  • 7.4.1 地址与指针的基本概念
  • 7.4.2 访问指针对象所指对象的内容
  • 7.4.3 指针对象的其他操作
  • 7.5 多级指针
  • 7.6 指向用户自定义类型的指针
  • 7.7 指针与数组的关系
  • 7.8 指向数组的指针
  • 7.9 void类型、指向void类型的指针与空指针
  • 7.10 字符数组与字符串字面量
  • 7.11 完整与不完整类型
  • 7.12 灵活的数组成员
  • 7.13 本章小结
  • 第8章 C语言的控制流语句
  • 8.1 逗号表达式
  • 8.2 条件表达式
  • 8.3 if-else语句
  • 8.4 switch-case语句
  • 8.5 while与do-while迭代语句
  • 8.6 for迭代语句
  • 8.7 goto语句
  • 8.8 本章小结
  • 第9章 C语言的函数
  • 9.1 函数的声明与定义
  • 9.2 函数调用与实现
  • 9.2.1 函数调用的顺序点
  • 9.2.2 函数的栈空间
  • 9.2.3 函数的参数传递与返回
  • 9.2.4 通过形参修改实参的值
  • 9.3 数组类型作为函数形参
  • 9.4 带有不定参数类型及个数的函数声明与调用
  • 9.5 函数的递归调用
  • 9.6 内联函数
  • 9.7 函数的返回类型与无返回函数
  • 9.8 指向函数的指针
  • 9.9 C语言中的主函数main
  • 9.10 函数与函数调用作为sizeof操作符
  • 9.11 本章小结
  • 第10章 C语言预处理器
  • 10.1 宏定义
  • 10.1.1 宏的基本使用
  • 10.1.2 宏定义中的#操作符
  • 10.1.3 宏定义中的##操作符
  • 10.1.4 宏替换
  • 10.1.5 可变参数的宏定义
  • 10.2 C语言中预定义的宏
  • 10.2.1 C语言强制要求的预定义宏
  • 10.2.2 环境宏
  • 10.2.3 条件特征宏
  • 10.2.4 主流编译器及平台预定义的宏
  • 10.3 条件预编译
  • 10.4 源文件包含预处理指示符
  • 10.5 #error预处理指示符
  • 10.6 #line预处理指示符
  • 10.7 #undef预处理指示符
  • 10.8 pragma预编译指示符与操作符
  • 10.9 空指示符与C语言中的程序注释
  • 10.10 本章小结
  • 第11章 C语言程序的编译上下文
  • 11.1 C语言程序中的作用域和名字空间
  • 11.1.1 文件作用域
  • 11.1.2 函数作用域
  • 11.1.3 函数原型作用域
  • 11.1.4 语句块作用域
  • 11.1.5 标识符的重定义与作用域的叠交
  • 11.1.6 标识符的名字空间
  • 11.2 全局对象与函数
  • 11.3 静态对象与函数
  • 11.4 局部对象
  • 11.5 对象的存储与生命周期
  • 11.6 _Thread_local对象
  • 11.7 本章小结
  • 第三篇 高级语法篇
  • 第12章 C语言中的类型限定符
  • 12.1 const限定符
  • 12.1.1 const限定符修饰普通对象
  • 12.1.2 const限定符修饰数组元素
  • 12.1.3 const限定符修饰指针类型对象
  • 12.1.4 const限定符修饰函数形参类型为数组的对象
  • 12.1.5 类型限定符的本质含义
  • 12.2 volatile限定符
  • 12.3 restrict限定符
  • 12.4 _Atomic限定符
  • 12.5 本章小结
  • 第13章 C语言的类型系统
  • 13.1 对象类型与函数类型
  • 13.2 对声明符的进一步说明
  • 13.3 更复杂的声明
  • 13.3.1 将某一类型转换为指向该类型的指针
  • 13.3.2 判定当前类型属于哪种对象类型
  • 13.3.3 复杂复合类型的判断
  • 13.4 typedef类型定义
  • 13.4.1 typedef的一般使用
  • 13.4.2 typedef与类型限定符相结合的使用
  • 13.4.3 用typedef来定义结构体与联合体的类型
  • 13.5 本章小结
  • 第14章 C11标准中的表达式、左值与求值顺序
  • 14.1 常量表达式
  • 14.2 泛型选择表达式
  • 14.3 静态断言
  • 14.4 C语言中的左值
  • 14.5 C语言中表达式的求值顺序
  • 14.6 C语言中的语句
  • 14.7 本章小结
  • 第15章 函数调用约定与ABI
  • 15.1 Windows操作系统环境下x86处理器的函数调用约定
  • 15.1.1 Windows操作系统下32位x86执行模式的函数调用约定
  • 15.1.2 Windows操作系统下64位x86执行模式的函数调用约定
  • 15.2 Unix/Linux操作系统环境下x86处理器的函数调用约定
  • 15.3 ARM处理器环境下的函数调用约定
  • 15.3.1 AArch32架构环境下的函数调用约定
  • 15.3.2 AArch64架构环境下的函数调用约定
  • 15.4 本章小结
  • 第16章 创建静态库与动态库
  • 16.1 Windows系统下创建静态库与动态库
  • 16.1.1 Windows系统下创建并使用静态库
  • 16.1.2 Windows系统上创建并使用动态库
  • 16.2 macOS系统下创建静态库与动态库
  • 16.2.1 macOS系统下创建并使用静态库
  • 16.2.2 macOS系统下创建并使用动态库
  • 16.3 Linux系统下创建并使用静态库与动态库
  • 16.3.1 Linux系统下创建并使用静态库文件
  • 16.3.2 Linux系统下创建并使用动态库
  • 16.4 本章小结
  • 第四篇 语法扩展篇
  • 第17章 GCC对C11标准的语法扩展
  • 17.1 在表达式中使用复合语句与声明
  • 17.2 声明语句块作用域的跳转标签
  • 17.3 跳转标签作为值
  • 17.4 嵌套函数
  • 17.5 使用typeof来获取对象类型
  • 17.6 使用__auto_type做类型自动推导
  • 17.7 对复数操作的扩展
  • 17.8 半精度浮点类型
  • 17.9 长度为零的数组
  • 17.10 对可变参数个数的宏的语法扩展
  • 17.11 case语句中使用范围表达式
  • 17.12 投射到一个联合体类型
  • 17.13 使用二进制整数字面量
  • 17.14 使用__attribute__指定函数、对象与类型的属性
  • 17.14.1 __attribute__用于修饰函数的属性
  • 17.14.2 __attribute__用于修饰对象的属性
  • 17.14.3 __attribute__用于修饰类型的属性
  • 17.15 本章小结
  • 第18章 Clang编译器对C11标准的扩展
  • 18.1 特征检查宏
  • 18.2 _Nullable与_Nonnull
  • 18.3 函数重载
  • 18.4 Blocks语法
  • 18.5 本章小结
  • 第19章 对C语言的未来展望
  • 19.1 C语言中的属性
  • 19.2 fallthrough属性
  • 19.3 数组片段
  • 19.3.1 数组片段的赋值操作
  • 19.3.2 数组片段的算术计算操作
  • 19.3.3 数组片段用于函数调用的情况
  • 19.4 其他语法特性
  • 19.5 本章小结
  • 第五篇 项目实践篇
  • 第20章 制作UTF-8与UTF-16编码字符串的转码器
  • 20.1 UTF-8字符编码格式
  • 20.2 UTF-16字符编码格式
  • 20.3 代码示例
  • 20.4 本章小结
  • 第21章 制作控制台计算器
  • 21.1 对数字的解析
  • 21.2 对操作符的优先级处理
  • 21.3 代码示例
  • 21.4 本章小结
展开全部

评分及书评

评分不足
1个评分

出版方

机械工业出版社有限公司

机械工业出版社是全国优秀出版社,自1952年成立以来,坚持为科技、为教育服务,以向行业、向学校提供优质、权威的精神产品为宗旨,以“服务社会和人民群众需求,传播社会主义先进文化”为己任,产业结构不断完善,已由传统的图书出版向着图书、期刊、电子出版物、音像制品、电子商务一体化延伸,现已发展为多领域、多学科的大型综合性出版社,涉及机械、电工电子、汽车、计算机、经济管理、建筑、ELT、科普以及教材、教辅等领域。