尚觀嵌入式c語言程式設計高階筆記 1 遞迴函式

2021-07-27 10:25:52 字數 454 閱讀 4043

一、遞迴

函式的自我呼叫,是自己定義自己的過程。

函式在呼叫自身時,在棧區為區域性變數和參量分配記憶體空間,但並不複製記憶體**,只重新分配相應的變數。每個遞迴呼叫返回時,其區域性變數和引數的空間都被釋放,在函式中的呼叫點繼續執行。

遞迴程式優點:能生成某些演算法的更清晰、更簡潔的版本,某些專門問題(如ai)本質上是遞迴的,特別適合遞迴解,比迭代更便於思考。

多數遞迴不能明顯改善記憶體效率,很多程式的遞迴版本比等價的迭代版本執行得慢,原因在於反覆呼叫的開銷大。

過分遞迴可能溢位堆疊,沖垮程式的其他**或資料,所以要保證遞迴深度不會失控。

編寫遞迴時,必須在適當的位置放置判斷條件,用於強制返回,否則函式可能在被呼叫後永遠也不返回。在開發時可用printf()和getchar()監視執行的推進並尋找錯誤。

二、舉例:用遞迴法將整數裝換成字元

void convert(int n)

尚觀嵌入式c語言程式設計高階筆記 2 陣列

一 陣列 array 的使用 1 陣列 具有相同型別的資料的有序集合,並用唯一的名字來標誌 2 陣列必須直接宣告,編譯器在編譯階段為其分配記憶體空間 3 陣列所有元素佔據連續的記憶體空間,在記憶體中是線性存放的,儲存陣列所需的記憶體空間直接與基型別和陣列長度有關 4 陣列占用的記憶體空間是 size...

嵌入式系統高階C語言程式設計

內容介紹 本書主要介紹針對嵌入式系統基於c語言的軟體專案開發流程 較為複雜的c語言程式設計知識與技巧 程式設計風格及除錯習慣,並通過對乙個具體的軟體模組 asix window gui 的分析,介紹分析 的方法以及設計軟體系統需要考慮的各要素。本書以實際專案中的 為例來進行介紹,詳細分析在嵌入式系統...

嵌入式C高階筆記 結構體

在實際的處理物件中,有許多資訊是由多個不同型別的資料組合在一起進行描述,而且這些不同型別的資料是互相聯絡組成了乙個有機的整體。此時,就要用到一種新的構造型別資料 結構體 structure 簡稱結構。定義乙個結構型別的一般形式為 struct 結構體名 結構體屬於c語言的一種資料型別,與整型 實型相...