C++ 速查手冊
8.7 - inline 函數
inline 函數定義經常重複的小型工作模組,例如
#include <iostream>
inline int max(int a, int b) {
return a > b ? a : b;
}
int main() {
std::cout << max(55, 22) << std::endl;
std::cout << max(2, 214) << std::endl;
return 0;
}
/* 《程式語言教學誌》的範例程式
http://kaiching.org/
檔名:u0807.cpp
功能:示範 C++ 的函數
作者:張凱慶*/
這裡定義了一個 inline 函數,工作為判斷兩個參數的大小,並且回傳較大值
inline int max(int a, int b) {
return a > b ? a : b;
}
編譯器 (compiler) 會將 inline 函數的部份最佳化,通常會把 inline 函數的程式直接插入執行檔編譯,避免過多的函數呼叫,因此上例會變成
std::cout << 55 > 22 ? 55 : 22 << std::cout;
std::cout << 2 > 214 ? 2 : 214 << std::cout;
所以 inline 函數的目的除了提高效能外,也在於提供一個符合語意的名稱,此例編譯執行結果如下
$ g++ u0807.cpp |
$ ./a.out |
55 |
214 |
$ |
通常 inline 函數的定義宣告會直接放在標頭檔之中。
相關教學影片