C的簡單應用(第五天)

2021-10-07 22:39:24 字數 1501 閱讀 8037

專案名稱

【物聯網工程實踐 --蘇嵌實訓第5天】

今日進度以及任務

1,free是如何知道需要釋放的空間大小。(實現原理)

2,static在什麼樣的情況下使用?

3,為什麼要使用typedef給型別重新命名?

本日任務完成情況

一:free函式通常和malloc函式共同使用,malloc函式通過作業系統分配,直接得到乙個滿足程式要求的記憶體塊,但是對於作業系統來說,它還會分配乙個管理塊,但是這個管理塊是方便作業系統使用的,而使用者是無法使用且無法看見的。這樣一來,在呼叫free函式的時候,雖然引數只有乙個,但是free函式可以根據這個引數找到該塊的首位址,進而找到該塊的管理塊,然後設定管理塊為可用,這樣就可以釋放目標塊了。所以說malloc函式需要設定大小,而free就不需要知道目標空間的大小。

詳參:三:1,為了使類bai型的含義更加明確;

比如typdef unsigneg char byte 你就知道du接下來zhi用byte定義的是將要對位元組進行操作,而不是字dao符或字串。

2,為了保持庫**的相容和一致性;

比如你寫了乙個庫,某個資料型別需要用int,後來你覺得不夠大,更新版本的時候就要改所有的int為long,如果typedef int int_type的話,你就只需改typedef就可以了

3,為了簡化繁瑣的型別宣告;

c++裡,string其實是basic_string, allocator>的typedef,你不想每次都寫那麼長的型別宣告吧

本日開發**現的問題彙總

本日未解決問題

本日開發收穫

函式--函式三要素:函式名,形參,返回值

1,函式名:命名--->自注釋性 動詞+名詞   add_user  del_user

2,函式引數:實參是什麼型別,形參就要定義什麼型別;《傳陣列名》

c語言記憶體管理《記憶體是稀缺資源》

1,對程式設計師來說,記憶體管理應該掌握那些內容?

資料存放在哪? 關鍵字

register:盡可能的將資料儲存到cpu 的暫存器中,提高了程式執行效率(省去了cpu通過匯流排從記憶體中抓取資料的過程)

注意事項:  只能修飾區域性變數,不能修飾全域性變數和函式  一旦修飾了,就不能做取位址符

static:(靜態變數)

作用:修飾區域性變數:延長了區域性變數的生命週期,程式結束之後再釋放(只執行一次)

修飾全域性變數:靜態全域性變數,該變數不能在其他檔案使用。

修飾函式:該函式只能被本檔案的函式呼叫,不能被其他檔案訪問

extern(外部宣告):告訴編譯器這個函式或是變數是在其他檔案定義的;

const

修飾變數:該變數成為乙個唯讀變數(值是可以被改變的)

距離誰近就修飾誰

使用注意事項:修飾某個變數時一定要初始化

typedef:給資料型別重新命名

復合資料型別:

struct(相同型別定義在一起),union(大端位元組序,小端位元組序),enum(當專案中需要多個整數巨集時)

其他

C 學習第五天

c 中的is和as is可用於任何型別。例如 int a 10 a is object true object o 10 o is int true o person o is int false as右側型別必須為引用型別或可空型別。as操作如果失敗,不丟擲異常,而是返回null 結構 struc...

C語言第五天

c中陣列詳解 從函式返回陣列 小結c指向陣列的指標 節點陣列的初始化 指標與陣列名的區別 c enum 列舉 c語言支援陣列資料結構,它可以儲存乙個固定大小的相同型別元素的順序集合。陣列是用來儲存一系列資料,但它往往被認為是一系列相同型別的變數。陣列的宣告並不是宣告乙個個單獨的變數,比如num0 n...

C 基礎 第五天

c 保留有效位數的方法.cout.precision 2 總的有效數字 cout.flags cout.fixed 小數點後面有效數字 cout.unsetf cout.fixed 復原輸入資料時,前面輸入錯誤,導致後面無法輸入.解決方法.過程和原理 include include include ...