原创 test markd

{ struct device_node *dn = of_find_matching_node(from, matches); struct resource res; while (dn) { if (of_addre

原创 UML類圖與類的關係詳解

虛線箭頭指向依賴; 實線箭頭指向關聯; 虛線三角指向接口; 實線三角指向父類; 空心菱形能分離而獨立存在,是聚合; 實心菱形精密關聯不可分,是組合; 上面是UML的語法。 在畫類圖的時候,理清類和類之間的關係是重點。類的關係有泛化(Ge

原创 GRASP軟件設計的模式和原則

GRASP 模式:每一個模式描述了一個在我們周圍不斷重複發生的問題,以及該問題的解決方案的核心。” 這是關於模式最經典的定義,作者是建築大師Christopher Alexander。如果是第一次看到這句話,多數人會覺得有些抽象難懂。其實

原创 《HeadFirst設計模式》讀書筆記-第9章v3-組合迭代器

定義 組合迭代器不是一個設計模式,是指如何在組合中使用迭代器。所以本章的代碼是基於《HeadFirst設計模式》讀書筆記-第9章v2-組合模式 修改過來的,需要先熟悉組合模式。 代碼實現 首先在MenuComponent接口中增加一個方法

原创 理解C語言聲明的優先級規則

C語言的聲明有時會很長,讓人感到恐懼。這裏描述了一種方法,用通俗的語言把聲明分解開來,分別解釋各個組成部分。 理解C語言聲明的優先級規則的步驟 聲明從它的名字開始讀起,然後按照優先級順序依次讀取。 優先級從高到低依次是: 聲明中被括號括

原创 C中的總線錯誤和段錯誤

最近寫了個基於linux的日誌系統,中途遇到了兩個錯誤: bus error(core dumped)和segmentation fault(core dumped)。 這兩個錯誤非常的折磨人,錯誤信息對引起這兩種錯誤的源代碼錯誤並未

原创 對C語言中無符號類型的建議

算術類型轉換 首先給出一段C代碼: int main(void) { if (-1 < (unsigned char)1) printf("true, ANSI C semantics\n"); else

原创 C語言常被搞錯的運算符優先級

C語言的運算符有優先級和結合性兩個屬性,而且相同的符號存在複用的情況,所以很容易造成錯誤。這裏有個建議,多給表達式加上括號,可以提高代碼的可讀性和減少錯誤的發生。 C語言運算符優先級存在的問題 優先級問題 表達式 人們可能誤以爲的結果

原创 有用的C語言工具

用於檢查源代碼的工具 工具 工具簡要說明 參考鏈接 indent linux下代碼格式化工具 Linux 代碼格式化工具 indent astyle 一個開源的代碼格式化工具,可美化C,C++,C++/CLI,Object

原创 這三個普通程序員,幾個月就成功轉型AI,他們的經驗是...

動輒50萬的畢業生年薪,動輒100萬起步價的海歸AI高級人才,普通員到底應不應該轉型AI工程師,普通程序員到底應該如何轉型AI工程師? 以下,AI科技大本營精選了三個特別典型的普通程序員成功轉型AI的案例,也是知乎上點贊量相當高

原创 FreeRTOS IPC總結

  create receive/take send/give/release queue_len xItemSize uxMessageWaiting when init BASE xQueueCreate xQ

原创 《HeadFirst設計模式》讀書筆記-第9章v2-組合模式

定義 組合模式(composite pattern)允許你將對象組合成樹形結構來表現“整體/部分“層次結構。組合能讓客戶以一致的方式處理個別對象以及對象組合。 代碼實現 本章使用組合模式來實現下圖的樹狀菜單。 首先爲菜單和菜單項創建一

原创 C語言中容易混淆的const關鍵字

const關鍵字是ANSI標準新增加的關鍵字。const是個類型限定符,可以和任何類型說明符一起使用,以指定被聲明對象的特殊屬性。C語言的類型說明符包括: void char short int long float double si

原创 C語言版本迭代

和大多數編程語言一樣,C語言版本迭代過程也經歷了誕生,到被關注,被廣泛使用,必須標準化,最後普及的過程。《C專家編程》一書有介紹C語言誕生及K&R C,ANSI C,ISO C等標準化的一些故事,有興趣的可以去看看。 作爲程序員,我關心的

原创 ANSI C定義的一些關於可移植性的術語說明

ANSI C標準定義了一些術語,用於描述某種編譯器的特點。對這些術語有一個比較好的瞭解,對於提供代碼的可移植性和錯誤的排查都有幫助的。 不可移植的代碼(unportable code) 由編譯器定義的(implementation-de