c++内联函数
c++内联函数
先放语法:
inline int max(int a,int b)
{
return a > b ? a : b ;
}
//先声明后定义
void Foo(int x, int y);
inline void Foo(int x, int y) {}
// inline 与函数定义体放在一起
内联函数在c++里面用关键字inline来定义,当将函数定义为内联函数时,之后调用时,编译器会将函数调用部分代码替换为内联函数定义中的代码,从而回避了函数调用与返回的时间开销。
例如:
//非内联函数
int max(int a,int b)
{
return a > b ? a : b ;
}
//内联函数
inline int max(int a,int b)
{
return a > b ? a : b ;
}
宏定义与调用:
#define GETMAX(a,b)((a)>(b)?(a):(b))
inline 是一种用于实现的关键字
关键字 inline 必须与函数定义体放在一起才能使函数成为内联,仅将inline 放在函数声明前面不起任何作用。
如下风格的函数 Foo 不能成为内联函数:
inline void Foo(int x, int y);
void Foo(int x, int y){}
// inline 仅与函数声明放在一起
而如下风格的函数Foo 则成为内联函数:
void Foo(int x, int y);
inline void Foo(int x, int y) {}
// inline 与函数定义体放在一起
内联函数inline:引入内联函数的目的是为了解决程序中函数调用的效率问题,这么说吧,程序在编译器编译的时候,编译器将程序中出现的内联函数的调用表达式用内联函数的函数体进行替换,而对于其他的函数,都是在运行时候才被替代。这其实就是个空间代价换时间的i节省。所以内联函数一般都是1-5行的小函数。
在使用内联函数时要留神:
1.在内联函数内不允许使用循环语句和开关语句;
2.内联函数的定义必须出现在内联函数第一次调用之前;
3.类结构中所在的类说明内部定义的函数是内联函数。

浙公网安备 33010602011771号