互联网
类型
可以朗读
语音朗读
438千字
字数
2017-05-01
发行日期
展开全部
主编推荐语
这本书帮你完全掌握新标准的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 本章小结
展开全部
出版方
机械工业出版社有限公司
机械工业出版社是全国优秀出版社,自1952年成立以来,坚持为科技、为教育服务,以向行业、向学校提供优质、权威的精神产品为宗旨,以“服务社会和人民群众需求,传播社会主义先进文化”为己任,产业结构不断完善,已由传统的图书出版向着图书、期刊、电子出版物、音像制品、电子商务一体化延伸,现已发展为多领域、多学科的大型综合性出版社,涉及机械、电工电子、汽车、计算机、经济管理、建筑、ELT、科普以及教材、教辅等领域。