嵌入式C語言實戰教程

嵌入式C語言實戰教程

《嵌入式C語言實戰教程》是2014年電子工業出版社出版的圖書,作者是李令偉、周中孝、黃文濤。

內容簡介

本書主要介紹了嵌入式C語言程式設計基礎知識、基本數據類型、各種運算符與表達式、C語言9條基本語句和32個關鍵字、函式、數組、指針、結構體、共用體、枚舉型、鍊表、檔案、預處理命令、算法和類型定義符、五子棋人機智慧型對戰等內容。每個知識點都有例子程式,如常用的12種算法、基本C語言語句使用範例等。

目錄

第1章 嵌入式C語言概述 1

1.1 嵌入式C語言簡介 1

1.2 嵌入式C語言的發展歷史 1

1.3 嵌入式C語言的主要特點 1

1.4 單片機的彙編語言與嵌入式C語言比較 2

1.5 嵌入式C語言與標準C語言的異同 3

1.6 嵌入式C語言總結 3

第2章 嵌入式C語言程式的基本結構 4

2.1 嵌入式C語言入門實例 4

2.2 程式工作原理 4

2.3 源程式 5

2.4 嵌入式C語言程式的基本結構 6

2.5 頭檔案 6

2.6 主函式 7

2.7 函式 7

第3章 常量與變數的類型 8

3.1 嵌入式C語言的基本數據類型 8

3.2 基本數據類型 8

3.3 常量與變數 9

3.3.1 常量 9

3.3.2 變數 10

3.4 自定義變數類型typedef 13

第4章 運算符和表達式 14

4.1 運算符與表達式 14

4.1.1 賦值運算 14

4.1.2 算術運算 14

4.1.3 關係運算 15

4.1.4 邏輯運算 16

4.1.5 位運算 17

4.1.6 自增減運算及複合運算 18

4.1.7 條件運算符 18

4.1.8 逗號運算符 19

4.2 嵌入式C語言程式的基本結構總結 19

第5章 嵌入式C語言基本結構程式設計 20

5.1 概述 20

5.2 順序結構:0條基本語句 20

5.3 選擇結構:2條基本語句(if和switch-case-break) 20

5.3.1 if語句 21

5.3.2 switch-case語句 23

5.4 break 基本語句 25

5.5 循環結構:3條基本語句(while、do...while、for) 25

5.5.1 while語句 26

5.5.2 do...while語句 27

5.5.3 for語句 27

5.5.4 循環嵌套 29

5.6 其他語句(轉移語句):4條基本語句(break、continue、goto、return) 29

5.6.1 循環語句中的break語句 29

5.6.2 continue語句 30

5.6.3 goto語句 30

5.6.4 return語句 31

5.7 嵌入式C語言基本結構總結 31

第6章 函式 32

6.1 函式概述 32

6.2 函式聲明 32

6.3 函式定義 33

6.4 函式的調用 33

6.4.1 函式的簡單調用 33

6.4.2 函式的參數傳遞 34

6.4.3 函式的遞歸調用 36

6.5 數組作為函式參數 37

6.6 函式作用範圍與變數作用域 38

6.7 函式總結 39

第7章 數組 40

7.1 一維數組 40

7.1.1 一維數組的定義 40

7.1.2 一維數組元素的引用 41

7.1.3 一維數組的初始化 41

7.2 二維數組 43

7.2.1 二維數組的定義 43

7.2.2 二維數組元素的引用 43

7.2.3 二維數組的初始化 43

7.3 字元數組 45

7.4 嵌入式C語言中數組初始化規則 47

7.5 數組總結 47

第8章 指針 48

8.1 指針概述 48

8.2 指針和地址 48

8.2.1 指針變數的定義 48

8.2.2 指針變數的引用 49

8.2.3 指針和數組 51

8.2.4 字元指針 51

8.2.5 指針數組的定義格式 52

8.3 函式指針 53

8.3.1 函式指針定義 53

8.3.2 函式指針類型 54

8.3.3 函式類型 54

8.3.4 通過指針調用函式 55

8.3.5 返回指向函式的指針 56

8.4 實驗範例:鍵盤掃描 57

8.4.1 鍵盤接口 57

8.4.2 按鍵開關的抖動問題 57

8.4.3 編程範例 58

8.5 指針總結 60

8.6 基本C語言語句使用範例 61

8.6.1 用順序結構實現流水燈 61

8.6.2 用單種選擇語句if實現流水燈 63

8.6.3 用多種選擇語句if...else、if...else if...else實現流水燈 64

8.6.4 用多種選擇語句switch-case-break實現流水燈 66

8.6.5 用循環語句for實現流水燈 67

8.6.6 用循環語句while實現流水燈 68

8.6.7 用循環語句do...while實現流水燈 69

8.6.8 用轉移語句goto實現流水燈 71

8.6.9 用函式調用的方式實現流水燈 72

8.6.10 用數組實現流水燈 73

8.6.11 用指針實現流水燈 74

8.6.12 用指針+數組實現流水燈 76

8.6.13 用指針+數組+函式實現流水燈 77

8.6.14 用結構體實現流水燈 78

8.6.15 用結構體數組實現流水燈 80

8.6.16 用結構體數組+指針實現流水燈 81

第9章 結構體 83

9.1 結構體概述 83

9.2 結構體變數 84

9.2.1 結構體變數定義 84

9.2.2 結構變數成員的表示方法 86

9.3 結構變數的初始化和賦值 87

9.3.1 結構變數的初始化 87

9.3.2 結構變數的賦值 88

9.4 結構數組的定義 88

9.5 結構指針變數的說明和使用 90

9.5.1 指向結構變數的指針 90

9.5.2 指向結構數組的指針 92

9.5.3 結構指針變數作為函式參數 93

9.6 結構指針總結 95

第10章 共用體 96

10.1 共用體概念 96

10.2 一般定義形式 96

10.3 共用體變數的引用方式 97

10.4 共用體類型數據的特點 97

10.5 共用體總結 98

第11章 枚舉型 99

11.1 枚舉類型 99

11.2 枚舉類型的定義和枚舉變數的說明 99

11.3 枚舉類型變數的賦值和使用 100

11.4 枚舉類型總結 101

第12章 鍊表 102

12.1 動態存儲分配 102

12.2 鍊表的概念 104

第13章 C語言檔案 110

第14章 預處理命令 113

14.1 預處理命令概述 113

14.2 宏定義 113

14.2.1 無參宏定義 113

14.2.2 帶參宏定義 117

14.3 檔案包含 121

14.4 條件編譯 122

14.5 預處理命令總結 125

第15章 算法和類型定義符 126

15.1 算法 126

15.1.1 程式的靈魂——算法 126

15.1.2 算法分類 126

15.1.3 算法的特性 126

15.1.4 算法形式 126

15.2 結構化程式設計方法 127

15.3 類型定義符typedef 127

15.4 算法和類型定義符總結 128

15.5 常用的10種實例 128

15.5.1 冒泡排序算法 128

15.5.2 回文算法 130

15.5.3 冪運算 131

15.5.4 加法運算 132

15.5.5 求直角三角形邊長 133

15.5.6 在排序號的數組中插入元素 133

15.5.7 字元串的拼接 134

15.5.8 閏年判斷 135

15.5.9 字元串查詢 136

15.5.10 輸出三位水仙花數 137

15.5.11 計算某個日期對應該年的第幾天 138

15.5.12 輸出月份對應的英文名稱 139

第16章 五子棋人機智慧型對戰 140

16.1 五子棋人機智慧型對戰界面 140

16.2 五子棋人機智慧型對戰軟體說明 141

16.3 五子棋人機智慧型對戰程式 141

第17章 程式模組化設計 173

17.1 模組化設計的優勢 173

17.2 模組化設計的步驟 173

17.2.1 建立兩個檔案 173

17.2.2 編寫C語言檔案函式實體 174

17.2.3 編寫.h檔案 174

17.2.4 在工程中添加C語言檔案 175

17.2.5 工程檔案的管理 175

17.3 模組化設計總結 177

第18章 程式編程規範及最佳化 178

18.1 嵌入式C語言程式編程規範 178

18.1.1 編程總原則 178

18.1.2 編程舉例 180

18.1.3 注釋 181

18.1.4 命名 182

18.1.5 編輯風格 182

18.2 C語言程式編程規範總結 183

18.3 程式最佳化 186

18.4 項目管理知識 186

18.4.1 項目定義 186

18.4.2 項目三要素 186

18.4.3 項目過程 187

18.4.4 項目評估標準 187

18.5 電子產品開發流程 187

第19章 嵌入式C語言編程常見錯誤和程式調試 190

19.1 嵌入式C語言編程常見錯誤 190

19.2 C語言程式調試常見錯誤及警告的解決方法 190

19.3 C語言編譯器錯誤信息中文翻譯 195

19.4 MDK C常用警告原因及處理方法 199

附錄A Microsoft Visual C++ 6.0軟體使用介紹 202

A.1 工程(Project)及工程工作區(Project Workspace) 202

A.2 啟動並進入VC 6.0的集成開發環境 203

A.3 創建工程並輸入源程式代碼 204

A.4 不創建工程,直接輸入源程式代碼 207

A.5 編譯、連結後運行程式 207

A.6 VC 6.0常見快捷鍵操作 208

附錄B MDK建立工程 211

附錄C KEIL C51建立工程 216

附錄D 嵌入式C語言關鍵字 222

附錄E 常用字元與ASCII代碼對照 225

相關詞條

熱門詞條

聯絡我們