學習目標:
難的咱也看不懂,先把簡單的看了再說,加油L 沖沖沖!
學習時間:
2020年11月1日
學習產出:
回呼函式學習:
回呼函式說白了就是一個通過函式指標呼叫的函式,如果你把函式的指標Callback(地址)作為引數傳遞給另一個函式,當這個指標被用來呼叫其所指向的函式時,我們就說這是回呼函式,
#include<stdio.h>
int Callback_1()
{
printf(“Hello, this is Callback_1 \n”);
return 0;
}
int Handle(int (*Callback)())
{
Callback(); //回呼函式
}
int main()
{
Handle(Callback_1);
return 0;
}
靜態庫:指編譯鏈接時,把庫檔案的代碼全部加入到可執行檔案中,因此生成的檔案比較大,但在運行時也就不需要庫檔案了[一般格式xxx.a的檔案]
動態庫:在編譯連接時,沒有把庫檔案的代碼全部加入到可執行檔案中,而是在程式執行時由運行的鏈接檔案加載庫,這樣節省系統開銷[一般格式xxx.so的檔案]
gcc在編譯時默認的是使用動態庫
靜態全域變數:只有在定義它的檔案內有效[例如在其他檔案使用extern關鍵字也無法訪問],
全域變數:在整個工程檔案內都有效[例如使用extern關鍵字在其他檔案內就可以使用],
靜態區域變數:只有在定義它的函式內有效,且程式分配一次記憶體,函式回傳后變數不會消失,
區域變數:定義它的函式內有效,函式回傳后區域變數失效
記憶體四區:
堆疊區:由編譯器自動分配釋放,存放函式的形參,區域變數等,自動釋放,
堆區:由程式員手動分配釋放[動態記憶體申請和釋放],
全域區:用于存放全域變數和靜態變數,里邊細分有一個常量區,存放字串常量和其他常量,
代碼區:存放CPU執行的機器指令,該區域通常是制度的,防止程式意外地修改它的指令,

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/201979.html
標籤:其他
上一篇:程式員笑話二十八
