嵌入式Linux與物聯網軟件開發 C語言內核深度解析

嵌入式Linux與物聯網軟件開發 C語言內核深度解析 下載 mobi epub pdf 電子書 2024


簡體網頁||繁體網頁
硃有鵬,張先鳳 著

下載链接在页面底部


點擊這裡下載
    

想要找書就要到 新城書站
立刻按 ctrl+D收藏本頁
你會得到大驚喜!!

發表於2024-11-22


圖書介紹


齣版社: 人民郵電齣版社
ISBN:9787115432940
版次:1
商品編碼:12068656
品牌:異步圖書
包裝:平裝
開本:16開
齣版時間:2016-11-01
用紙:膠版紙
頁數:237
正文語種:中文


類似圖書 點擊查看全場最低價

相關圖書





圖書描述

編輯推薦

  針對性強:麵嚮嵌入式Linux內核源碼、底層驅動軟件開發等技術方嚮。
  精華原創:凝結作者多年研發及教學經驗,幫助讀者真正深度理解難點。
  求職必讀:詳解常見麵試題,完全應對 “嵌入式軟件工程師”崗位需求。

內容簡介

  本書的原型思想和內容,發源於硃有鵬老師早些年的研發和學習經曆,發展於後來數年的綫下培訓授課經曆,並成熟於視頻課程《C語言高級專題》(隸屬於《硃有鵬老師嵌入式Linux核心課程》係列視頻課程的第4部分)。本書正是基於這套視頻課程的課件整理而來,參與各章節整理和編寫的都是學習瞭視頻課程的學生,由硃有鵬老師和張先鳳老師檢驗並完善成書。這些參與編寫的同學有的已經工作數年、有的則尚未走齣大學校園。選擇他們閤作創作本書,就是為瞭告訴讀者:做技術並不要求你天賦異稟,隻需要你感興趣、願意去探索和練習,你也可以成功。

作者簡介

  硃有鵬,互聯網課程《硃老師物聯網大講堂》創始人、傑齣講師;51CTO學院傑齣講師、CSDN技術專傢、國內物聯網教育領域先驅;具有大型企業級項目研發經驗和豐富的教學經驗。授課風趣幽默、條理清晰、通俗易懂,對知識有自己獨到見解。能舉一反三,發散學生的思維,指引學生發掘適閤自己的學習方法。

  張先鳳,《硃老師物聯網大講堂》聯閤創始人、傑齣講師;長期從事企業級物聯網項目研發和物聯網相關教學工作,對物聯網各關鍵環節技術均有所涉獵,對物聯網未來發展和教學有著獨特見解,立誌長期紮根物聯網相關研發和教學工作。

目錄

第1 章 C 語言與內存… ……………………………………………………………………… 1
1.1 引言………………………………………………………………………………………………… 1
1.2 計算機程序運行的目的…………………………………………………………………………… 1
1.2.1 什麼是程序… …………………………………………………………………………………… 1
1.2.2 計算機運行程序的目的………………………………………………………………………… 1
1.2.3 靜態內存SRAM 和動態內存DRAM…………………………………………………………2
1.2.4 馮·諾伊曼結構和哈佛結構… ………………………………………………………………3
1.2.5 總結:程序運行為什麼需要內存呢……………………………………………………………4
1.2.6 深入思考:如何管理內存(無OS 時,有OS 時)… ………………………………………4
1.3 位、字節、半字、字的概念和內存位寬………………………………………………………… 5
1.3.1 深入瞭解內存(硬件和邏輯兩個角度)… ……………………………………………………5
1.3.2 內存的邏輯抽象圖(內存的編程模型)… ……………………………………………………6
1.3.3 位和字節…………………………………………………………………………………………7
1.3.4 字和半字…………………………………………………………………………………………7
1.3.5 內存位寬(硬件和邏輯兩個角度)… …………………………………………………………7
1.4 內存編址和尋址、內存對齊……………………………………………………………………… 8
1.4.1 內存編址方法… …………………………………………………………………………………8
1.4.2 關鍵:內存編址是以字節為單位………………………………………………………………8
1.4.3 內存和數據類型的關係…………………………………………………………………………9
1.4.4 內存對齊……………………………………………………………………………………… 10
1.5 C語言如何操作內存… …………………………………………………………………………… 10
1.5.1 C 語言對內存地址的封裝…………………………………………………………………… 10
1.5.2 用指針來間接訪問內存……………………………………………………………………… 11
1.5.3 指針類型的含義……………………………………………………………………………… 12
1.5.4 用數組來管理內存…………………………………………………………………………… 12
1.6 內存管理之結構體………………………………………………………………………………… 14
1.6.1 數據結構這門學問的意義… ………………………………………………………………… 14
1.6.2 最簡單的數據結構:數組…………………………………………………………………… 141
6.3 數組的優缺點………………………………………………………………………………… 14
1.6.4 結構體隆重登場……………………………………………………………………………… 14
1.6.5 題外話:結構體內嵌指針實現麵嚮對象…………………………………………………… 15
1.7 內存管理之棧(stack)… ……………………………………………………………………… 15
1.7.1 什麼是棧… …………………………………………………………………………………… 15
1.7.2 棧管理內存的特點(小內存、自動化)… ………………………………………………… 16
1.7.3 棧的應用舉例:局部變量和函數調用……………………………………………………… 16
1.7.4 棧的約束(預定棧大小不靈活,怕溢齣)… ……………………………………………… 17
1.8 內存管理之堆……………………………………………………………………………………… 18
1.8.1 什麼是堆… …………………………………………………………………………………… 18
1.8.2 堆管理內存的特點(大塊內存、手工分配/ 使用/ 釋放)………………………………… 18
1.8.3 C 語言操作堆內存的接口(malloc/free)… ……………………………………………… 18
1.8.4 堆的優勢和劣勢(管理大塊內存、靈活、容易內存泄漏)… …………………………… 19
1.8.5 靜態存儲區…………………………………………………………………………………… 19
課後題… ………………………………………………………………………………………………… 19
第2 章 C 語言位操作… ………………………………………………………………………21
2.1 引言………………………………………………………………………………………………… 21
2.2 常用位操作符……………………………………………………………………………………… 21
2.2.1 位與(&)……………………………………………………………………………………… 21
2.2.2 位或(|)… …………………………………………………………………………………… 22
2.2.3 位取反(~)…………………………………………………………………………………… 23
2.2.4 位異或(^)…………………………………………………………………………………… 24
2.2.5 左移位(<<)………………………………………………………………………………… 25
2.2.6 右移位(>>)………………………………………………………………………………… 26
2.3 位操作與寄存器…………………………………………………………………………………… 26
2.3.1 寄存器的操作………………………………………………………………………………… 26
2.3.2 寄存器特定位清零用&……………………………………………………………………… 27
2.3.3 寄存器特定位置1 用|… …………………………………………………………………… 27
2.3.4 寄存器特定位取反用~……………………………………………………………………… 27
2.4 位運算構建特定二進製數………………………………………………………………………… 28
2.4.1 使用移位獲取特定位為1 的二進製數……………………………………………………… 28
2.4.2 結閤位取反獲取特定位為0 的二進製數…………………………………………………… 29
2.4.3 總結…………………………………………………………………………………………… 29
2.5 位運算實戰演練1… ……………………………………………………………………………… 30
2.5.1 給定整型數a,設置a 的bit3,保證其他位不變………………………………………… 30
2.5.2 給定整型數a,設置a 的bit3~bit7,保持其他位不變… ……………………………… 30
2.5.3 給定整型數a,清除a 的bit15,保證其他位不變… …………………………………… 302
5.4 給定整型數a,清除a 的bit15~bit23,保持其他位不變… …………………………… 31
2.5.5 給定整型數a,取齣a 的bit3~bit8… …………………………………………………… 31
2.5.6 用C 語言給寄存器a 的bit7~bit17 賦值937(其餘位不受影響)……………………… 31
2.6 位運算實戰演練2… ……………………………………………………………………………… 32
2.6.1 用C 語言將寄存器a 的bit7~bit17 中的值加17(其餘位不受影響)…………………… 32
2.6.2 用C 語言給寄存器a 的bit7~bit17 賦值937,同時給bit21~bit25 賦值17… ……… 32
2.7 技術升級:用宏定義來完成位運算……………………………………………………………… 33
2.7.1 直接用宏來置位……………………………………………………………………………… 33
2.7.2 直接用宏來復位……………………………………………………………………………… 33
2.7.3 截取變量的部分連續位……………………………………………………………………… 33
課後題… ………………………………………………………………………………………………… 34
第3 章 指針纔是C 語言的精髓… ………………………………………………………… 36
3.1 引言………………………………………………………………………………………………… 36
3.2 指針到底是什麼…………………………………………………………………………………… 37
3.2.1 普通變量……………………………………………………………………………………… 37
3.2.2 指針變量……………………………………………………………………………………… 37
3.2.3 變量空間的首字節地址,作為整個空間的地址…………………………………………… 38
3.2.4 指針變量的類型作用………………………………………………………………………… 38
3.2.5 為什麼需要指針……………………………………………………………………………… 39
3.2.6 高級語言如Java、C# 的指針到哪裏去瞭… …………………………………………… 39
3.2.7 指針使用之三部麯…………………………………………………………………………… 40
3.3 理解指針符號……………………………………………………………………………………… 40
3.3.1 星號* 的理解………………………………………………………………………………… 40
3.3.2 取地址符& 的理解… ……………………………………………………………………… 41
3.3.3 指針變量的初始化和指針變量賦值之間的區彆…………………………………………… 41
3.3.4 左值與右值…………………………………………………………………………………… 41
3.3.5 定義指針後,需要關心的一些內容………………………………………………………… 42
3.4 野指針與段錯誤問題……………………………………………………………………………… 43
3.4.1 什麼是野指針………………………………………………………………………………… 43
3.4.2 野指針可能引發的危害……………………………………………………………………… 44
3.4.3 野指針産生的原因…………………………………………………………………………… 44
3.4.4 如何避免野指針……………………………………………………………………………… 45
3.4.5 NULL 到底是什麼…………………………………………………………………………… 45
3.4.6 段錯誤産生的原因匯總……………………………………………………………………… 46
3.5 const關鍵字與指針… …………………………………………………………………………… 46
3.5.1 什麼是const… ……………………………………………………………………………… 46
3.5.2 const 對於普通變量的修飾………………………………………………………………… 463
5.3 const 修飾指針的三種形式………………………………………………………………… 46
3.5.4 const 的變量真的不能改嗎………………………………………………………………… 47
3.5.5 為什麼要用const…………………………………………………………………………… 48
3.5.6 有關變量和常量的探討……………………………………………………………………… 48
3.6 深入學習數組……………………………………………………………………………………… 49
3.6.1 為什麼需要數組……………………………………………………………………………… 49
3.6.2 從編譯器角度理解數組……………………………………………………………………… 49
3.6.3 從內存角度理解數組………………………………………………………………………… 49
3.6.4 一位數組中幾個關鍵符號的理解…………………………………………………………… 50
3.7 指針與數組的天生“姻緣”……………………………………………………………………… 50
3.7.1 如何使用指針訪問數組……………………………………………………………………… 50
3.7.2 從內存角度理解指針訪問數組的實質……………………………………………………… 51
3.7.3 指針與數組類型的匹配問題………………………………………………………………… 51
3.7.4 總結:指針類型決定瞭指針如何參與運算………………………………………………… 51
3.8 指針類型與強製類型轉換………………………………………………………………………… 52
3.8.1 變量數據類型的作用………………………………………………………………………… 52
3.8.2 數據的存入和讀取…………………………………………………………………………… 53
3.8.3 普通變量的強製轉換………………………………………………………………………… 53
3.8.4 指針變量數據類型的含義…………………………………………………………………… 56
3.8.5 指針變量數據類型的強製轉換……………………………………………………………… 56
3.9 指針、數組與sizeof運算符… …………………………………………………………………… 57
3.9.1 char str[]="hello"; sizeof(str) ,sizeof(str[0]) ,strlen(str)………………………… 58
3.9.2 char str[]="hello"; char *p=str; sizeof(*p) …………………………………………… 58
3.9.3 int b[100]; sizeof(b)… …………………………………………………………………… 58
3.9.4 數組的傳參…………………………………………………………………………………… 58
3.9.5 #define 和typedef 的區彆………………………………………………………………… 59
3.10 指針與函數傳參… ……………………………………………………………………………… 60
3.10.1 普通傳參… ………………………………………………………………………………… 60
3.10.2 傳遞地址(指針)…………………………………………………………………………… 61
3.10.3 傳遞數組… ………………………………………………………………………………… 61
3.10.4 傳遞結構體… ……………………………………………………………………………… 61
3.10.5 傳遞普通值和傳遞地址的異同,以及傳遞地址(指針)應該遵循的原則… ………… 62
3.11 輸入型參數與輸齣型參數… …………………………………………………………………… 62
3.11.1 函數為什麼需要傳參和返迴值… ………………………………………………………… 62
3.11.2 函數傳參中為什麼使用const 指針… …………………………………………………… 64
3.11.3 總結… ……………………………………………………………………………………… 65
課後題… ………………………………………………………………………………………………… 65
第4 章 C 語言復雜錶達式與指針高級應用……………………………………………… 67
4.1 引言………………………………………………………………………………………………… 67
4.2 指針數組與數組指針……………………………………………………………………………… 67
4.2.1 簡單理解指針數組與數組指針……………………………………………………………… 67
4.2.2 分析指針數組與數組指針的錶達式………………………………………………………… 68
4.3 函數指針與typedef… …………………………………………………………………………… 69
4.3.1 函數指針的實質(還是指針變量)… ……………………………………………………… 70
4.3.2 函數指針的書寫和分析方法………………………………………………………………… 70
4.3.3 typedef 關鍵字的用法……………………………………………………………………… 72
4.4 函數指針實戰1—用函數指針調用執行函數… ……………………………………………… 73
4.5 函數指針實戰2—結構體內嵌函數指針實現分層… ………………………………………… 75
4.6 再論typedef… …………………………………………………………………………………… 78
4.6.1 輕鬆理解和應用typedef… ………………………………………………………………… 78
4.6.2 typedef 與#define 宏的區彆……………………………………………………………… 80
4.6.3 typedef 與struct… ………………………………………………………………………… 81
4.6.4 typedef 與const… ………………………………………………………………………… 81
4.6.5 使用typedef 的重要意義…………………………………………………………………… 82
4.6.6 二重指針………………………………………………………… 嵌入式Linux與物聯網軟件開發 C語言內核深度解析 下載 mobi epub pdf txt 電子書 格式

嵌入式Linux與物聯網軟件開發 C語言內核深度解析 mobi 下載 pdf 下載 pub 下載 txt 電子書 下載 2024

嵌入式Linux與物聯網軟件開發 C語言內核深度解析 下載 mobi pdf epub txt 電子書 格式 2024

嵌入式Linux與物聯網軟件開發 C語言內核深度解析 下載 mobi epub pdf 電子書
想要找書就要到 新城書站
立刻按 ctrl+D收藏本頁
你會得到大驚喜!!

用戶評價

評分

正在看,書是正品,很不錯的一次購物,物流也快

評分

貴點。

評分

質量好!!!!!!!!!!!!!!!

評分

深入瞭解c編程的好資料,謝謝瞭

評分

不錯,很有用

評分

講的很基礎,適閤深化學習

評分

挺好的非常好

評分

很基礎的書,適閤入門~

評分

朋友用,看到學習瞭很多東西,很不錯

類似圖書 點擊查看全場最低價

嵌入式Linux與物聯網軟件開發 C語言內核深度解析 mobi epub pdf txt 電子書 格式下載 2024


分享鏈接




相關圖書


本站所有內容均為互聯網搜索引擎提供的公開搜索信息,本站不存儲任何數據與內容,任何內容與數據均與本站無關,如有需要請聯繫相關搜索引擎包括但不限於百度google,bing,sogou

友情鏈接

© 2024 book.cndgn.com All Rights Reserved. 新城書站 版权所有