| 在 函式簡介
中的範例,有一個pow2()函式: int
pow2(int num) {
return num*num; } 在呼叫函式時會需要分配記憶空間因而需要額外的資源負擔,像pow2()這樣的小函式,可以「建議」編譯器將之設定為「行內函式」(Inline function),如果建議被採納,則該函式會自動在呼叫點展現為程式碼,行內函式建議可以直接定義於表頭檔案中,例如:
inline int myPow2(int); 配合表頭檔案,您可以如下實作 pow()函式本體:
#include "math.h" 至於範例主函式則不變,如下所示:
#include <stdio.h> 行內函式只能建議編譯器,也就是說建議並不一定會被採納,這視您的編譯器而定,像是使用到goto、static變數、迴圈、switch等等,這些編譯 器可能不接受行內函式的建議,遞迴函式也無法在呼叫點展開,一個數千行的函式也不適合在呼叫點展開,如果編譯器拒絕將函式展開,它會將該函式視為一般函式 進行編譯,inline的建議會被忽略。 |