嵌入式Linux C語言程式設計基礎教程(微課版)

嵌入式Linux C語言程式設計基礎教程(微課版)

《嵌入式Linux C語言程式設計基礎教程(微課版)》是2019年10月人民郵電出版社出版的圖書,作者是華清遠見嵌入式學院、劉洪濤、苗德行。

基本介紹

  • 書名:嵌入式Linux C語言程式設計基礎教程(微課版)
  • 作者:華清遠見嵌入式學院
    劉洪濤
    苗德行
  • ISBN:9787115447715
  • 頁數:263頁
  • 定價:49.8元
  • 出版社:人民郵電出版社
  • 出版時間:2019年10月
  • 裝幀:平裝
  • 開本:16開
內容簡介,圖書目錄,

內容簡介

本書較為全面地介紹了嵌入式開發中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.2.1 整型家族 31
2.2.2 實型家族 33
2.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
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

相關詞條

熱門詞條

聯絡我們