當(dāng)前位置: 首頁(yè) > 原創(chuàng)圖書 >《嵌入式Linux C語(yǔ)言程序設(shè)計(jì)基礎(chǔ)教程》
《嵌入式Linux C語(yǔ)言程序設(shè)計(jì)基礎(chǔ)教程》立足基礎(chǔ),可操作性強(qiáng),可作為高等院校嵌入式技術(shù)專業(yè)以及電子信息類其他專業(yè)的教材,也可供嵌入式愛好者自學(xué)參考。
《嵌入式Linux C語(yǔ)言程序設(shè)計(jì)基礎(chǔ)教程》介紹開發(fā)工具和Linux C語(yǔ)言基礎(chǔ)包括嵌入式Linux C語(yǔ)言中的數(shù)據(jù)、數(shù)據(jù)的輸入和輸出、運(yùn)算符和表達(dá)式、程序結(jié)構(gòu)和控制語(yǔ)句、數(shù)組、指針及函數(shù)、嵌入式Linux C語(yǔ)言高級(jí)用法、內(nèi)核常見數(shù)據(jù)結(jié)構(gòu)的解析與應(yīng)用等,并設(shè)置了嵌入式Linux C函數(shù)參考附錄。
第1章 嵌入式Linux C語(yǔ)言開發(fā)工具 1
1.1 嵌入式Linux下C語(yǔ)言概述 1
1.1.1 C語(yǔ)言簡(jiǎn)史 1
1.1.2 C語(yǔ)言特點(diǎn) 2
1.1.3 嵌入式Linux C語(yǔ)言編程環(huán)境 3
1.2 嵌入式Linux編輯器vi的使用 3
1.2.1 vi的基本模式 4
1.2.2 vi的基本操作 4
1.2.3 vi的使用實(shí)例分析 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使用庫(kù)函數(shù) 15
1.3.5 GCC代碼優(yōu)化 17
1.4 嵌入式Linux調(diào)試器GDB的使用 17
1.4.1 GDB使用實(shí)例 18
1.4.2 設(shè)置/刪除斷點(diǎn) 21
1.4.3 數(shù)據(jù)相關(guān)命令 22
1.4.4 調(diào)試運(yùn)行環(huán)境相關(guān)命令 22
1.4.5 堆棧相關(guān)命令 23
1.5 make工程管理器 23
1.5.1 Makefile基本結(jié)構(gòu) 24
1.5.2 Makefile變量 25
1.5.3 Makefile規(guī)則 28
1.5.4 make使用 30
1.6 eclipse集成開發(fā)環(huán)境 30
1.6.1 eclipse簡(jiǎn)介 30
1.6.2 eclipse 相關(guān)術(shù)語(yǔ) 30
1.6.3 安裝eclipse集成開發(fā)環(huán)境(假設(shè)宿主機(jī)環(huán)境為ubuntu8.10) 32
1.6.4 eclipse的使用 33
小結(jié) 44
思考與練習(xí) 44
第2章 數(shù)據(jù) 46
2.1 ANSI C與GNU C 46
2.1.1 ANSI C簡(jiǎn)介 46
2.1.2 GNU C簡(jiǎn)介 47
2.2 基本數(shù)據(jù)類型 48
2.2.1 整型家族 48
2.2.2 實(shí)型家族 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 存儲(chǔ)模型 63
2.4 預(yù)處理 67
2.4.1 預(yù)定義 67
2.4.2 文件包含 73
2.4.3 條件編譯 74
2.5 需要注意的問(wèn)題 76
2.5.1 字長(zhǎng)和數(shù)據(jù)類型 76
2.5.2 數(shù)據(jù)對(duì)齊 77
2.5.3 字節(jié)序 77
小結(jié) 78
思考與練習(xí) 78
第3章 數(shù)據(jù)的輸入輸出 79
3.1 數(shù)據(jù)的輸出 79
3.1.1 字符輸出函數(shù)putchar 79
3.1.2 格式化輸出函數(shù)printf 80
3.2 數(shù)據(jù)的輸入 83
3.2.1 字符輸入函數(shù)getchar 83
3.2.2 格式化輸入函數(shù)scanf 84
3.3 數(shù)據(jù)輸入輸出綜合示例 89
3.4 字符串輸入輸出函數(shù) 90
小結(jié) 91
思考與練習(xí) 92
第4章 運(yùn)算符和表達(dá)式 93
4.1 概述 93
4.2 運(yùn)算符和表達(dá)式 94
4.2.1 算術(shù)運(yùn)算符和表達(dá)式 94
4.2.2 賦值運(yùn)算符和表達(dá)式 97
4.2.3 逗號(hào)運(yùn)算符和表達(dá)式 101
4.2.4 位運(yùn)算符和表達(dá)式 101
4.2.5 關(guān)系運(yùn)算符和表達(dá)式 105
4.2.6 邏輯運(yùn)算符和表達(dá)式 107
4.2.7 sizeof操作符 110
4.2.8 條件運(yùn)算符 111
4.2.9 運(yùn)算符優(yōu)先級(jí)總結(jié) 112
小結(jié) 114
思考與練習(xí) 114
第5章 程序結(jié)構(gòu)和控制語(yǔ)句 115
5.1 C語(yǔ)言程序結(jié)構(gòu) 115
5.2 C語(yǔ)言控制語(yǔ)句 116
5.2.1 條件判斷語(yǔ)句 116
5.2.2 循環(huán)語(yǔ)句 125
5.2.3 轉(zhuǎn)向語(yǔ)句 129
小結(jié) 133
思考與練習(xí) 133
第6章 數(shù)組 134
6.1 一維數(shù)組 134
6.1.1 數(shù)組的定義 134
6.1.2 一維數(shù)組的引用 135
6.1.3 一維數(shù)組的初始化 136
6.1.4 一維數(shù)組的內(nèi)存分配 138
6.1.5 一維數(shù)組程序舉例 139
6.2 多維數(shù)組 141
6.2.1 多維數(shù)組定義及初始化 141
6.2.2 二維數(shù)組的內(nèi)存分配 142
6.2.3 深入理解二維數(shù)組 143
6.2.4 二維數(shù)組程序舉例 144
6.3 字符數(shù)組 146
6.4 字符串 147
6.4.1 字符串的定義 147
6.4.2 字符串的輸入輸出 148
6.4.3 字符串處理函數(shù) 149
小結(jié) 153
思考與練習(xí) 154
第7章 指針 155
7.1 指針基礎(chǔ) 155
7.1.1 指針變量的定義 156
7.1.2 指針變量的賦值 156
7.1.3 指針變量的引用 158
7.2 指針的運(yùn)算 161
7.2.1 指針的算術(shù)運(yùn)算 161
7.2.2 指針的關(guān)系運(yùn)算 163
7.2.3 空指針 166
7.3 指針與數(shù)組 166
7.3.1 指針與一維數(shù)組 166
7.3.2 指針與多維數(shù)組 169
7.4 多級(jí)指針 172
7.4.1 多級(jí)指針的定義及引用 172
7.4.2 多級(jí)指針的運(yùn)算 173
7.5 指針數(shù)組 174
7.5.1 指針數(shù)組的定義及初始化 174
7.5.2 理解指針數(shù)組名 175
7.6 const與指針 177
7.7 void指針 179
7.8 字符指針 180
7.8.1 字符串 180
7.8.2 字符指針數(shù)組 182
小結(jié) 183
思考與練習(xí) 183
第8章 函數(shù) 185
8.1 函數(shù)基礎(chǔ) 185
8.1.1 函數(shù)定義和聲明 186
8.1.2 函數(shù)的調(diào)用、參數(shù)傳遞和返回值 187
8.1.3 函數(shù)和數(shù)組 194
8.1.4 main函數(shù)的參數(shù) 197
8.2 指針函數(shù) 197
8.2.1 指針函數(shù)的定義和使用 197
8.2.2 指針函數(shù)程序舉例 200
8.3 函數(shù)指針 202
8.3.1 函數(shù)指針的聲明 202
8.3.2 定義函數(shù)指針類型 204
8.3.3 函數(shù)指針數(shù)組 204
8.3.4 函數(shù)指針程序舉例 205
8.4 遞歸函數(shù) 207
8.4.1 遞歸函數(shù)的定義 207
8.4.2 函數(shù)調(diào)用機(jī)制說(shuō)明 208
8.4.3 遞歸調(diào)用的形式 208
8.4.4 遞歸的條件 209
8.5 attribute機(jī)制介紹 210
小結(jié) 217
思考與練習(xí) 217
第9章 用戶自定義數(shù)據(jù)類型 218
9.1 結(jié)構(gòu)體 218
9.1.1 結(jié)構(gòu)體的定義 218
9.1.2 結(jié)構(gòu)體變量的聲明、使用及初始化 221
9.1.3 結(jié)構(gòu)體數(shù)組 228
9.1.4 結(jié)構(gòu)體指針 232
9.2 位域 233
9.2.1 位域的定義 233
9.2.2 位域變量的說(shuō)明 235
9.2.3 位域的使用 236
9.3 共用體 237
9.4 枚舉 239
9.4.1 枚舉類型的定義 239
9.4.2 枚舉變量的聲明和使用 241
小結(jié) 243
思考與練習(xí) 243
第10章 嵌入式C語(yǔ)言的高級(jí)用法 245
10.1 內(nèi)存管理 245
10.2 動(dòng)態(tài)內(nèi)存的申請(qǐng)和釋放 247
10.2.1 malloc函數(shù) 247
10.2.2 free函數(shù) 247
10.2.3 關(guān)于野指針 249
10.3 堆和棧的區(qū)別 252
10.4 動(dòng)態(tài)內(nèi)存程序舉例 253
10.5 C語(yǔ)言和匯編語(yǔ)言的接口 254
10.5.1 內(nèi)聯(lián)匯編的語(yǔ)法 254
10.5.2 編譯器優(yōu)化介紹 257
10.5.3 C語(yǔ)言關(guān)鍵字volatile 258
10.5.4 “memory”描述符 258
小結(jié) 258
思考與練習(xí) 259
第11章 嵌入式linux內(nèi)核常見數(shù)據(jù)結(jié)構(gòu) 261
11.1 鏈表 261
11.1.1 單向鏈表 261
11.1.2 雙向鏈表 265
11.1.3 循環(huán)鏈表 266
11.1.4 ARM Linux中鏈表使用實(shí)例 267
11.2 樹、二叉樹、平衡樹 269
11.2.1 樹的定義 269
11.2.2 二叉樹 270
11.2.3 平衡樹 276
11.2.4 ARM Linux中紅黑樹使用實(shí)例 278
11.3 哈希表 280
11.3.1 哈希表的概念及作用 280
11.3.2 哈希表的構(gòu)造方法 281
11.3.3 哈希表的處理沖突方法 283
11.3.4 ARM Linux中哈希表使用實(shí)例 285
小結(jié) 286
思考與練習(xí) 286
附錄 嵌入式Linux C函數(shù)快速參考 287