//内聯函數定義
inline int sum(int a,int b){
return a + b;
}
//普通函數定義
int sum1(int a,int b){
return a + b;
}
多了inline關鍵詞。
想起之前寫C語言,把一些重複做的事情封裝成一個函數,真是很大的進步。但是他們說調用函數比直接代碼要慢些。内聯函數有什麼好處呢?避免了函數調用的開銷。也就是說如果我寫下面的代碼:
printf("a+b=%d\n",sum(a,b));
它會把代碼展開變成
printf("a+b=%f\n",(a + b));
有點像宏。一般說來,内聯機制适用于優化小的,隻有幾行的而且經常被調用的函數。還有遞歸函數大多也不支援。
#include <stdio.h>
//内聯函數定義
inline int sum(int a,int b){
return a + b;
}
//普通函數定義
int sum1(int a,int b){
return a + b;
}
int main(int argc, char* argv[])
{
int a = 1,b = 2;
//下面的調用等于 printf("a+b=%f\n",(a + b));
printf("a+b=%d\n",sum(a,b));
//普通函數調用
printf("a+b=%d\n",sum1(a,b));
return 0;
}