大話嵌入式之一 變數

2021-10-05 23:08:31 字數 602 閱讀 4557

動態變數也就是很多書中提到的區域性變數,是函式執行過程中申請的,生命週期隨著函式的開始而誕生,隨著函式的結束而消亡;是動態存在的。程式分配棧空間給區域性變數使用;由於程式或者任務的棧空間的大小限制,所以不建議在函式中申請大量的區域性變數,如大空間的陣列;

靜態變數,可以包含有區域性靜態變數用static修飾和全域性變數,這種變數一旦定義不會消亡,和函式的生命週期無關;兩種靜態變數只是作用範圍不一樣,區域性靜態變數只為某個函式服務,而全域性變數為整個工程裡的所有函式服務;因此也有書本會說static會定義變數的作用域。程式分配堆空間給靜態變數使用。靜態變數的空間申請有兩種方式,一種是普通的定義方式由編譯器自行分配,還有一種通過malloc的方式,malloc會以void *的方式返回分配空間的首位址。為什麼會以void *的方式返回,主要是因為void *可以接收任何型別的指標變數,在使用時只需要進行強制型別轉換就可以。使得程式在編寫時不需要考慮型別匹配的問題;malloc的方式分配後,由於是靜態變數,因此程式結束不會消除,必須要通過free釋放申請的空間,由於堆空間也是有限的,因此malloc後,需要在功能結束的位置執行free;

Bash系列之(一) 變數替換

1.variable如果為空或者未設定,則返回value的值 root k8s node1 vi koala.sh bin bash declare name n name echo name echo name is null echo n name echo name echo name is ...

嵌入式系統除錯(一)

前言 android開發時,有了adb,就能在pc shell或者eclispe debug視窗看到除錯資訊從而定位bug。android系統提供的除錯手段很強大,linux也是,但是對沒有移植這些成熟的嵌入式系統開發板來說,實現嵌入式系統的除錯,從工具到方式,都需要自己動手搭建。一套除錯環境包括 ...

嵌入式linux開發 一

最近買了乙個 正點原子arm linux開發板,想在這兩天對資料熟悉一下.並結合 jz2440 探索者stm32f407 和 普中科技 em3.0 進行專題分析.開發板基於 soc mcimx6y2cvm08ab i.mx6ull cortex a7 易失性儲存 nt5cc256m16ep ek d...