變數以及一些記憶體的管理

2021-07-14 18:34:58 字數 1013 閱讀 9291

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 ...