《嵌入式Linux C语言程序设计基础教程 微课版》PDF下载

  • 购买积分:11 如何计算积分?
  • 作  者:华清远见嵌入式学院,刘洪涛,苗德行
  • 出 版 社:北京:人民邮电出版社
  • 出版年份:2017
  • ISBN:9787115447715
  • 页数:263 页
图书介绍:全书共11章,第1章介绍了Linux下常用的C语言开发工具。第2章~第5章讲解了Linux C语言中的基础知识。第6章主要讲解了Linux C语言中的数组。第7章主要讲解了Linux C语言中的指针。第8章主要讲解了Linux C语言的函数。第9章主要介绍了Linux C语言中用户自定义的数据类型。第10章介绍了Linux C语言的高级用法。第11章介绍了Linux内核中常见的数据结构。

第1章 嵌入式Linux C语言开发工具 1

1.1嵌入式Linux下C语言概述 2

1.1.1 C语言简史 2

1.1.2 C语言特点 2

1.1.3嵌入式Linux C语言编程环境 3

1.2嵌入式Linux编辑器vi的使用 3

1.2.1 vi的基本模式 4

1.2.2 vi的基本操作 4

1.2.3 vi的使用实例分析 8

1.3嵌入式Linux编译器GCC的使用 9

1.3.1 GCC概述 9

1.3.2 GCC编译流程分析 10

1.3.3 GCC警告提示 12

1.3.4 GCC使用库函数 14

1.3.5 GCC代码优化 15

1.4嵌入式Linux调试器GDB的使用 16

1.4.1 GDB使用实例 16

1.4.2设置/删除断点 19

1.4.3数据相关命令 20

1.4.4调试运行环境相关命令 20

1.4.5堆栈相关命令 21

1.5 make工程管理器 21

1.5.1 Makefile基本结构 22

1.5.2 Makefile变量 23

1.5.3 Makefile规则 26

1.5.4 make使用 27

小结 28

思考与练习 28

第2章 数据 29

2.1 ANSI C与GNU C 30

2.1.1 ANSI C简介 30

2.1.2 GNU C简介 30

2.2基本数据类型 31

2.2.1整型家族 31

2.2.2实型家族 33

2.2.3字符型家族 35

2.2.4枚举家族 37

2.2.5指针家族 38

2.3变量与常量 39

2.3.1变量的定义 39

2.3.2 typedef 40

2.3.3常量的定义 41

2.3.4作用域 41

2.3.5存储模型 44

2.4预处理 47

2.4.1预定义 47

2.4.2文件包含 53

2.4.3条件编译 53

2.5需要注意的问题 55

2.5.1字长和数据类型 55

2.5.2数据对齐 56

2.5.3字节序 56

小结 57

思考与练习 57

第3章 数据的输入输出 58

3.1数据的输出 59

3.1.1字符输出函数putchar 59

3.1.2格式化输出函数printf 59

3.2数据的输入 62

3.2.1字符输入函数getchar 62

3.2.2格式化输入函数scanf 63

3.3数据输入输出综合示例 68

3.4字符串输入输出函数 70

小结 71

思考与练习 72

第4章 运算符和表达式 73

4.1概述 74

4.2运算符和表达式 74

4.2.1算术运算符和表达式 74

4.2.2赋值运算符和表达式 77

4.2.3逗号运算符和表达式 80

4.2.4位运算符和表达式 81

4.2.5关系运算符和表达式 84

4.2.6逻辑运算符和表达式 86

4.2.7 sizeof操作符 89

4.2.8条件运算符 90

4.2.9运算符优先级总结 91

小结 93

思考与练习 93

第5章 程序结构和控制语句 94

5.1 C语言程序结构 95

5.2 C语言控制语句 95

5.2.1条件判断语句 95

5.2.2循环语句 105

5.2.3转向语句 109

小结 112

思考与练习 112

第6章 数组 114

6.1一维数组 115

6.1.1数组的定义 115

6.1.2一维数组的引用 115

6.1.3一维数组的初始化 117

6.1.4一维数组的内存分配 118

6.1.5一维数组程序举例 119

6.2多维数组 121

6.2.1多维数组定义及初始化 121

6.2.2二维数组的内存分配 122

6.2.3深入理解二维数组 123

6.2.4二维数组程序举例 124

6.3字符数组 126

6.4字符串 127

6.4.1字符串的定义 127

6.4.2字符串的输入输出 127

6.4.3字符串处理函数 129

小结 133

思考与练习 133

第7章 指针 134

7.1指针基础 135

7.1.1指针变量的定义 135

7.1.2指针变量的赋值 135

7.1.3指针变量的引用 136

7.2指针的运算 139

7.2.1指针的算术运算 140

7.2.2指针的关系运算 141

7.2.3空指针 144

7.3指针与数组 145

7.3.1指针与一维数组 145

7.3.2指针与多维数组 147

7.4多级指针 150

7.4.1多级指针的定义及引用 150

7.4.2多级指针的运算 152

7.5指针数组 152

7.5.1指针数组的定义及初始化 152

7.5.2理解指针数组名 153

7.6 const与指针 155

7.7 void指针 157

7.8字符指针 158

7.8.1字符串 158

7.8.2字符指针数组 159

小结 160

思考与练习 161

第8章 函数 162

8.1函数基础 163

8.1.1函数定义和声明 163

8.1.2函数的调用、参数传递和返回值 164

8.1.3函数和数组 171

8.1.4 main函数的参数 173

8.2指针函数 174

8.2.1指针函数的定义和使用 174

8.2.2指针函数程序举例 177

8.3函数指针 179

8.3.1函数指针的声明 179

8.3.2定义函数指针类型 180

8.3.3函数指针数组 181

8.3.4函数指针程序举例 182

8.4递归函数 184

8.4.1递归函数的定义 184

8.4.2函数调用机制说明 185

8.4.3递归调用的形式 185

8.4.4递归的条件 186

8.5回调函数 187

8.5.1回调函数的定义 187

8.5.2回调函数实现机制 188

8.5.3自定义回调函数 188

8.5.4嵌入式开发中常见的回调函数 189

8.6 attbute机制介绍 189

小结 195

思考与练习 195

第9章 用户自定义数据类型 196

9.1结构体 197

9.1.1结构体的定义 197

9.1.2结构体变量的声明、使用及初始化 199

9.1.3结构体数组 206

9.1.4结构体指针 210

9.2位域 211

9.2.1位域的定义 211

9.2.2位域变量的说明 213

9.2.3位域的使用 214

9.3共用体 215

9.4枚举 217

9.4.1枚举类型的定义 218

9.4.2枚举变量的声明和使用 219

小结 221

思考与练习 221

第10章 嵌入式C语言的高级用法 223

10.1内存管理 224

10.2动态内存的申请和释放 225

10.2.1 malloc函数 225

10.2.2 free函数 226

10.2.3关于野指针 228

10.3堆和栈的区别 230

10.4动态内存程序举例 231

10.5 C语言和汇编语言的接口 233

10.5.1内联汇编的语法 233

10.5.2编译器优化介绍 236

10.5.3 C语言关键字volatile 236

10.5.4 “memory”描述符 236

小结 236

思考与练习 236

第11章 嵌入式Linux内核常见数据结构 239

11.1链表 240

11.1.1单向链表 240

11.1.2双向链表 243

11.1.3循环链表 245

11.1.4 ARM Linux中链表使用实例 245

11.2树、二叉树、平衡树 247

11.2.1树的定义 247

11.2.2二叉树 248

11.2.3平衡树 254

11.2.4 ARM Linux中红黑树使用实例 255

11.3哈希表 258

11.3.1哈希表的概念及作用 258

11.3.2哈希表的构造方法 259

11.3.3哈希表的处理冲突方法 260

11.3.4 ARM Linux中哈希表使用实例 262

小结 263

思考与练习 263