C語言之static inline函式

2021-10-06 01:47:29 字數 774 閱讀 6774

今天在前輩的**中看到在標頭檔案中定義了static line函式,並且該函式只是判斷乙個全域性變數的狀態。

中定義了乙個全域性變數

uint8_t g_addrmode;

中定義static line函式

extern uint8_t g_addrmode;

static

inline bool checkaddrmode

(void

)

為了減少因函式呼叫而引起的系統開銷

內聯函式實際上是以空間換效率的一種做法。

以下面的例子為例,如果main函式呼叫100次myprint( ),那麼會產生100次入棧和出棧操作,但實際上

myprint()只需要完成簡單的功能。

void

main()

}void

myprint()

使用內聯函式的方式,可以寫成如下形式

void

main()

}static

inline

void

myprint()

此時,等價於如下。如此,告訴編譯器把函式**在編譯時直接拷貝到程式中,而不是進行函式呼叫操作。

void

main()

}

函式在執行過程中也會分配記憶體, 但是由於static的存在, 因此就和修飾變數類似, 他只會開闢一塊記憶體空間。

C語言 C語言之continue

c語言迴圈 c 語言中的continue語句有點像break語句。但它不是跳出該迴圈語句,continue是跳過本次迴圈直接開始下一次迴圈的。在for迴圈裡,continue會跳過本次迴圈,但是自增語句仍然會執行,而在while和do while語句裡嘖是跳過迴圈重新執行判斷語句 課堂作業內容為 輸...

C語言之指標

指標型別的本質分析 1 指標的本質 指標的本質 一種復合的資料型別。下面我將以下面幾個作為例子進行展開分析 a int p b int p c int parvalue 3 d int pfun 分析 所謂的資料型別就是具有某種資料特徵的東東,比如資料型別char,它的資料特徵就是它所佔據的記憶體為...

C語言之陣列

c語言之陣列 一,一維陣列 1,一維陣列的定義 型別符 陣列名 常量表示式 注 1 常量表示式中可以包括常量和符號常量.int a 3 5 是合法的,int a n 是不合法的,c語言不允許對陣列的大小作動態定義 2 如果在被呼叫的函式 不包括主函式 中定義陣列,起長度可以是變數或非常量表示式,可稱...