C 速查手冊

6.5.4 inline 函數

C 語言中的關鍵字 (keyword) inline 用來將函數 (function) 宣告為 inline 函數,目的是告訴編譯器宣告為 inline 函數可以進行最佳化,好節省記憶體空間及增進執行效率。

inline 函數就是在函數的回傳型態 (return type) 之前加上關鍵字 inline ,形式如下

inline return-type name()

C 速查手冊 - 布林函數中的布林函數為例,完整程式範例如下

#include <stdio.h>

inline int max(int x, int y);

int main()
{
    int a = 6;
    int b = 13;
    
    if (max(a, b)) {
        printf("第一個數字比較大\n");
    }
    else {
        printf("第二個數字比較大\n");
    }    
    
    return 0;
}

inline int max(int x, int y)
{
    return x > y;
}

/* 《程式語言教學誌》的範例程式
    http://kaiching.org/
    檔名:maxinline.c
    功能:比較兩個數字,如果第一個數字比較大就回傳真
    作者:張凱慶 */

其中 inline 的宣告

inline int max(int a, int b);

inline 的定義

inline int max(int a, int b);
{
    return x > y;
}

然而最佳化的做法視編譯器 (compiler) 種類而定,如果程式太複雜有可能當成一般函數處理,另外有些編譯器可能會用巨集 (macro) 的方式直接做數字替換,細節請參考所用編譯器的相關文件。

LLVM 並不直接支援 inline 關鍵字,如使用 Mac 及 Objective-C 的話,需要將程式中的 inline 刪除,或是改成 static inline ,這樣才能順利通過編譯。

上一頁 6.5.3 遞迴函數
回 C 速查手冊首頁
下一頁 6.5.5 參數與回傳值型態
回 C 教材首頁
回程式語言教材首頁