《嵌入式Linux C?言程序设?基础教程(微课版)?

图书作者:姜先? 刘洪? 丛书名称? 高等院校嵌入式人才培养?划教材 出版日期?2017?3?

编辑推荐理由

推荐评分?5.0?

多年嵌入式人才培养及项目研发经验总结

数百家企业嵌入式研发岗位人才需求汇?

数十所嵌入式专业大学院校教学现状调?

侧重实践及?例分析并辅以代码加以?解

图书简?

《本书较为全面地介绍了嵌入式开发中C?言编程的基础知识。全书共11章,内?包?嵌入式Linux C?言开发工具、数?、数?的输入输出、运算?和表达式、程序结构和控制?句、数组、指针、函数、用户自定义数据类型、嵌入式C?言的高级用法、嵌入式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.1 整型家族 31
  • 2.2 实型家族 33
  • 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 attribute机制介绍 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