嵌入式Linux C语言程序设计基础教程(微课版)图书介绍

图书名称: 嵌入式Linux C语言程序设计基础教程(微课版)

图书作者: 华清远见嵌入式学院 姜先刚 刘洪涛

出版单位: 人民邮电出版社

丛书名称: 高等院校嵌入式人才培养规划教材

出版日期: 2017 年3月

分享到:

  • 图书简介

    《本书较为全面地介绍了嵌入式开发中C语言编程的基础知识。全书共11章,内容包括嵌入式Linux C语言开发工具、数据、数据的输入输出、运算符和表达式、程序结构和控制语句、数组、指针、函数、用户自定义数据类型、嵌入式C语言的高级用法、嵌入式Linux内核常见数据结构。每章都提供详细的练习题和视频讲解,通过练习、操作实践及相关视频,帮助读者巩固所学的内容。 本书可以作为院校嵌入式相关专业和计算机相关专业的教材,也可以作为计算机软硬件培训班教材,还可供嵌入式研究方向的专业人员和广大计算机爱好者自学使用。

  • 图书目录

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

  • 课程推荐

    · 嵌入式高薪就业课程

    · 嵌入式Linux应用开发培训班

    · 嵌入式Linux系统开发培训班

    · 嵌入式Linux驱动开发培训班

    · Linux内核修炼培训班

    · QT应用开发培训班