通用函數 指能在各種情境下使用、可被多位程式設計師重用的函數。設計通用函數時應遵循:
static 區域變數)全域變數會造成隱性耦合,使函數難以獨立測試與重用。參數化讓介面清晰、行為可預測。
函數是 C 語言的基本構建單元,但在極少數「執行速度至關重要」的場合,可考慮用內嵌程式碼(inline code)取代函數調用。
在絕大多數應用中,這些微小開銷可忽略不計。僅當效能分析證實函數調用為瓶頸時,才考慮內嵌。
函數版本:
int square(int x) { return x * x; }
void main() {
for (int i = 1; i <= 10; i++)
printf("%d ", square(i));
}
內嵌版本:
void main() {
for (int i = 1; i <= 10; i++)
printf("%d ", i * i);
}
內嵌版本執行較快,但犧牲了模組化與可維護性。現代編譯器支援 inline 關鍵字,可由編譯器自動決定是否內嵌,兼顧可讀性與效能。
inline 關鍵字提示編譯器(C99 標準)