inline 是一种“用于实现的关键字”,而不是一种“用于声明的关键字”。所以inline应该出现在函数定义处。其目的是为了提高函数的执行效率,用关键字 inline 放在函数定义(注意是定义而非声明,下文继续讲到)的前面即可将函数指定为内联函数,内联函数通常就是将它在程序中的每个调用点上“内联地”展开。
inline int min(int a,int b)
{
return a<b?a:b;
}
在编译时展开为: cout<<(a < b ? a : b)<<endl;
从而消除了把 min写成函数的额外执行开销
类中inline函数的使用:
1.在类里定义的成员函数会被默认的认为是指定为内置函数
class Com
{
public:
int min(int a,int b)
{
return a<b?a:b;
}
};
int main(int argc, char* argv[])
{
Com c;
cout<<c.min(1,2)<<endl;
return 0;
}
2.在头文件中内外加inline关键字定义
class Com
{
public:
int min(int a,int b) ;
};
inline int min(int a,int b)
{ return a<b?a:b; } int main(int argc, char* argv[]) { Com c; cout<<c.min(1,2)<<endl; return 0; }
3.在类外mian函数所在cpp文件加inline关键字定义
inline int min(int a,int b)
{
return a<b?a:b;
}
int main(int argc, char* argv[])
{
Com c;
cout<<c.min(1,2)<<endl;
return 0;
}
普通函数的调用内联函数
直接在函数前加inline关键字定义
inline int min(int a,int b)
{
return a<b?a:b;
}
int main(int argc, char* argv[])
{
Com c;
cout<<c.min(1,2)<<endl;
return 0;
}