c語言筆記1
為什麼嵌入式需要學習c
,因為作業系統的核心大多數都是用c寫的
而且c語言的三大特點:
移植性好:就是在不同的平台上進行移植,需要修改的**小
訪問硬體:能夠直接的訪問硬體,雖然彙編也能訪問硬體,但是它是低階語言,但是c
語言設計高階語言的低階語言,一些複雜的操作彙編完成起來比較的複雜。
執行效率高:雖然比起彙編的效率低,但是與其它語言的執行相對高。
編寫**需要滿足的三個方面:
**的復用性
**的維護性
**的擴充套件性
什麼是資料型別:
資料集合的劃分,不同資料型別對cpu
的意義不一樣。
有哪些資料型別:
基本資料型別
空型別字元型別
數值型實型
單精度實型
雙精度實型
短整型有符號短整型
無符號短整型
整型有符號整型
無符號整型
長整型有符號整型
無符號整型
複雜資料型別 陣列
結構聯合
列舉指標
對於乙個變數的宣告的閱讀與理解,用右左法則;
轉化:char隱式型別的轉化)
指標就是位址,那麼指標的大小,主要由於作業系統決定,如果你的作業系統32
位的話,指標的大小就是
4個位元組,如果是
64位的話,那麼指標的大小是
8個位元組。
char 1位元組
short 2位元組
int 4位元組
long 4位元組
float 4位元組
double 8位元組
long long 8位元組
注意有符號和無符號的數,在不同的編譯器例如char
的預設的不一樣,一般的都應該標明有符號和無符號,避免不必要的錯誤;(可以
typedef
否可以重新的起名字。);還有在比較運算的運算的時候,有時候符號會被系統忽略。
一些記憶體管理API
釋放頁面塊,釋放的頁面塊從 page 開始,個數等於2的order次方個 void free pages struct page page,unsigned int order 以 gfp mask 分配方式,分配2的order次方個連續的物理頁 unsigned long get free pag...
記憶體管理中一些演算法
在記憶體管理中存在這兩類演算法 一類是記憶體分配演算法,一類是頁面置換演算法 常見記憶體分配演算法及優缺點如下 1 首次適應演算法。使用該演算法進行記憶體分配時,從空閒分割槽鏈首開始查詢,直至找到乙個能滿足其大小要求的空閒分割槽為止。然後再按照作業的大小,從該分割槽中劃出一塊記憶體分配給請求者,餘下...
Linux的記憶體管理的一些總結
1.kmalloc 在arm平台上,kmalloc是以cache line的位元組數對齊的,比如cortex a8,a15是64bytes 對齊,而cortex a9則是32bytes 對齊。2.如何知道系統中可用的memory the free memory is memfree buffers ...