1、使用宏定義
功能:定義常量、定義宏函數(shù)、條件編譯等。
優(yōu)點是:是一種很好的替代函數(shù)的方式,增加代碼的可讀性和簡潔性
示例:
2、關(guān)鍵字register
功能:修飾一個寄存器變量。
優(yōu)點:使用頻率特別特別高的數(shù)據(jù),存在寄存器中,可以提高效率。
示例:
對比看int i; 和register int i;的運行時間
3、關(guān)鍵字volatile
功能:用來修飾會被不同線程訪問和修改的變量。
作用:確保編譯器不會對變量進行優(yōu)化,保持內(nèi)存的可見性。
4、位操作
功能:位與& 位或| 異或^ 取反~ 左移<< 右移>> 針對二進制
作用:充分利用位操作,可以節(jié)省內(nèi)存和提高效率。
示例:
5、自定義輕量級函數(shù)
作用:使用自定義的輕量級函數(shù)來替代標準庫函數(shù),可以節(jié)省資源。
示例:
6、內(nèi)存管理
作用:嵌入式的內(nèi)存使用很關(guān)鍵。在使用malloc()函數(shù)進行動態(tài)內(nèi)存分配的時候,使用結(jié)束后注意使用free()函數(shù)進行內(nèi)存釋放,避免內(nèi)存碎片問題。
示例:
7、中斷處理實時事件
示例:
8、防止整型溢出
為了防止整型溢出,可以使用適當?shù)臄?shù)據(jù)類型和邊界檢查來確保數(shù)值的正確性。
9、優(yōu)化編譯選項
對代碼進行優(yōu)化,提高代碼執(zhí)行的效率。
示例:
編譯指令:gcc -O2 example.c -o example
優(yōu)化后的代碼可能會有這些改變:
①循環(huán)展開:多個迭代合并為一個,以減少循環(huán)開銷和分支預測。
②內(nèi)聯(lián)函數(shù):減少函數(shù)調(diào)用開銷。
③消除無用代碼,減少不必要的計算和內(nèi)存訪問。
④優(yōu)化寄存器使用,以減少內(nèi)存讀寫,提高訪問速度。
⑤常量折疊:在編譯時計算常量表達式的值,并將結(jié)果直接替換成常量值。
10、函數(shù)指針數(shù)組
本質(zhì)是一個數(shù)組,存儲的元素都是函數(shù)指針。
語法格式: 數(shù)據(jù)類型 (*數(shù)組名[長度])(參數(shù));
作用:轉(zhuǎn)移表【C語言轉(zhuǎn)移表(Jump Table)是一種優(yōu)化技術(shù),可以用來代替一系列的if-else語句或switch語句,從而提高代碼的執(zhí)行效率!