今天在前輩的**中看到在標頭檔案中定義了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 如果在被呼叫的函式 不包括主函式 中定義陣列,起長度可以是變數或非常量表示式,可稱...