新書推薦:
《
历史的教训(浓缩《文明的故事》精华,总结历史教训的独特见解)
》
售價:NT$
286.0
《
不在场证明谜案(超绝CP陷入冤案!日本文坛超新星推理作家——辻堂梦代表作首次引进!)
》
售價:NT$
265.0
《
明式家具三十年经眼录
》
售價:NT$
2387.0
《
敦煌写本文献学(增订本)
》
售價:NT$
1010.0
《
耕读史
》
售價:NT$
500.0
《
地理计算与R语言
》
售價:NT$
551.0
《
沈括的知识世界:一种闻见主义的实践(中华学术译丛)
》
售價:NT$
398.0
《
大思维:哥伦比亚商学院六步创新思维模型
》
售價:NT$
332.0
|
編輯推薦: |
国内领先的嵌入式培训机构 华清远见出品
嵌入式专业的编程入门教材,市场空白
|
內容簡介: |
本书介绍开发工具和Linux C语言基础包括嵌入式Linux C语言中的数据、数据的输入和输出、运算符和表达式、程序结构和控制语句、数组、指针及函数、嵌入式Linux C语言高级用法、内核常见数据结构的解析与应用等,并设置了嵌入式Linux C函数参考附录。
本书立足基础,可操作性强,可作为高等院校嵌入式技术专业以及电子信息类其他专业的教材,也可供嵌入式爱好者自学参考。
|
目錄:
|
目 录
第1章 嵌入式Linux C语言开发工具 1
1.1 嵌入式Linux下C语言概述 1
1.1.1 C语言简史 1
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的使用实例分析 9
1.3 嵌入式Linux编译器GCC的使用 10
1.3.1 GCC概述 10
1.3.2 GCC编译流程分析 11
1.3.3 GCC警告提示 13
1.3.4 GCC使用库函数 15
1.3.5 GCC代码优化 17
1.4 嵌入式Linux调试器GDB的使用 17
1.4.1 GDB使用实例 18
1.4.2 设置删除断点 21
1.4.3 数据相关命令 22
1.4.4 调试运行环境相关命令 22
1.4.5 堆栈相关命令 23
1.5 make工程管理器 23
1.5.1 Makefile基本结构 24
1.5.2 Makefile变量 25
1.5.3 Makefile规则 28
1.5.4 make使用 30
1.6 eclipse集成开发环境 30
1.6.1 eclipse简介 30
1.6.2 eclipse 相关术语 30
1.6.3 安装eclipse集成开发环境假设宿主机环境为ubuntu8.10 32
1.6.4 eclipse的使用 33
小结 44
思考与练习 44
第2章 数据 46
2.1 ANSI C与GNU C 46
2.1.1 ANSI C简介 46
2.1.2 GNU C简介 47
2.2 基本数据类型 48
2.2.1 整型家族 48
2.2.2 实型家族 50
2.2.3 字符型家族 52
2.2.4 枚举家族 54
2.2.5 指针家族 55
2.3 变量与常量 57
2.3.1 变量的定义 57
2.3.2 typedef 58
2.3.3 常量的定义 59
2.3.4 作用域 60
2.3.5 链接属性 62
2.3.6 存储模型 63
2.4 预处理 67
2.4.1 预定义 67
2.4.2 文件包含 73
2.4.3 条件编译 74
2.5 需要注意的问题 76
2.5.1 字长和数据类型 76
2.5.2 数据对齐 77
2.5.3 字节序 77
小结 78
思考与练习 78
第3章 数据的输入输出 79
3.1 数据的输出 79
3.1.1 字符输出函数putchar 79
3.1.2 格式化输出函数printf 80
3.2 数据的输入 83
3.2.1 字符输入函数getchar 83
3.2.2 格式化输入函数scanf 84
3.3 数据输入输出综合示例 89
3.4 字符串输入输出函数 90
小结 91
思考与练习 92
第4章 运算符和表达式 93
4.1 概述 93
4.2 运算符和表达式 94
4.2.1 算术运算符和表达式 94
4.2.2 赋值运算符和表达式 97
4.2.3 逗号运算符和表达式 101
4.2.4 位运算符和表达式 101
4.2.5 关系运算符和表达式 105
4.2.6 逻辑运算符和表达式 107
4.2.7 sizeof操作符 110
4.2.8 条件运算符 111
4.2.9 运算符优先级总结 112
小结 114
思考与练习 114
第5章 程序结构和控制语句 115
5.1 C语言程序结构 115
5.2 C语言控制语句 116
5.2.1 条件判断语句 116
5.2.2 循环语句 125
5.2.3 转向语句 129
小结 133
思考与练习 133
第6章 数组 134
6.1 一维数组 134
6.1.1 数组的定义 134
6.1.2 一维数组的引用 135
6.1.3 一维数组的初始化 136
6.1.4 一维数组的内存分配 138
6.1.5 一维数组程序举例 139
6.2 多维数组 141
6.2.1 多维数组定义及初始化 141
6.2.2 二维数组的内存分配 142
6.2.3 深入理解二维数组 143
6.2.4 二维数组程序举例 144
6.3 字符数组 146
6.4 字符串 147
6.4.1 字符串的定义 147
6.4.2 字符串的输入输出 148
6.4.3 字符串处理函数 149
小结 153
思考与练习 154
第7章 指针 155
7.1 指针基础 155
7.1.1 指针变量的定义 156
7.1.2 指针变量的赋值 156
7.1.3 指针变量的引用 158
7.2 指针的运算 161
7.2.1 指针的算术运算 161
7.2.2 指针的关系运算 163
7.2.3 空指针 166
7.3 指针与数组 166
7.3.1 指针与一维数组 166
7.3.2 指针与多维数组 169
7.4 多级指针 172
7.4.1 多级指针的定义及引用 172
7.4.2 多级指针的运算 173
7.5 指针数组 174
7.5.1 指针数组的定义及初始化 174
7.5.2 理解指针数组名 175
7.6 const与指针 177
7.7 void指针 179
7.8 字符指针 180
7.8.1 字符串 180
7.8.2 字符指针数组 182
小结 183
思考与练习 183
第8章 函数 185
8.1 函数基础 185
8.1.1 函数定义和声明 186
8.1.2 函数的调用、参数传递和返回值 187
8.1.3 函数和数组 194
8.1.4 main函数的参数 197
8.2 指针函数 197
8.2.1 指针函数的定义和使用 197
8.2.2 指针函数程序举例 200
8.3 函数指针 202
8.3.1 函数指针的声明 202
8.3.2 定义函数指针类型 204
8.3.3 函数指针数组 204
8.3.4 函数指针程序举例 205
8.4 递归函数 207
8.4.1 递归函数的定义 207
8.4.2 函数调用机制说明 208
8.4.3 递归调用的形式 208
8.4.4 递归的条件 209
8.5 attribute机制介绍 210
小结 217
思考与练习 217
第9章 用户自定义数据类型 218
9.1 结构体 218
9.1.1 结构体的定义 218
9.1.2 结构体变量的声明、使用及初始化 221
9.1.3 结构体数组 228
9.1.4 结构体指针 232
9.2 位域 233
9.2.1 位域的定义 233
9.2.2 位域变量的说明 235
9.2.3 位域的使用 236
9.3 共用体 237
9.4 枚举 239
9.4.1 枚举类型的定义 239
9.4.2 枚举变量的声明和使用 241
小结 243
思考与练习 243
第10章 嵌入式C语言的高级用法 245
10.1 内存管理 245
10.2 动态内存的申请和释放 247
10.2.1 malloc函数 247
10.2.2 free函数 247
10.2.3 关于野指针 249
10.3 堆和栈的区别 252
10.4 动态内存程序举例 253
10.5 C语言和汇编语言的接口 254
10.5.1 内联汇编的语法 254
10.5.2 编译器优化介绍 257
10.5.3 C语言关键字volatile 258
10.5.4 “memory”描述符 258
小结 258
思考与练习 259
第11章 嵌入式linux内核常见数据结构 261
11.1 链表 261
11.1.1 单向链表 261
11.1.2 双向链表 265
11.1.3 循环链表 266
11.1.4 ARM Linux中链表使用实例 267
11.2 树、二叉树、平衡树 269
11.2.1 树的定义 269
11.2.2 二叉树 270
11.2.3 平衡树 276
11.2.4 ARM Linux中红黑树使用实例 278
11.3 哈希表 280
11.3.1 哈希表的概念及作用 280
11.3.2 哈希表的构造方法 281
11.3.3 哈希表的处理冲突方法 283
11.3.4 ARM Linux中哈希表使用实例 285
小结 286
思考与练习 286
附录 嵌入式Linux C函数快速参考 287
|
|