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