《嵌入式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