赞
踩
内联函数:
当内联函数收到编译器的指示时,即可发生内联:编译器将使用函数的定义体来替代函数调用语句,这种替代行为发生在编译阶段而非程序运行阶段。
把函数代码迁入调入的地方,但是保持函数的独立性,为了提高效率
编译器在编译文件时,同一时间只能看见一个代码
inline函数定义就是声明,必须放在.h文件
以空间换时间
如果函数是递归的或者是很复杂的,编译器可能不内联
如果在class中的函数直接定义,则这里面的函数都被作为内联函数使用
C++ inline函数是一种“用于实现的关键字”,而不是一种“用于声明的关键字”。
#include <iostream>
using namespace std;
inline int f(int a)
{
return a * a;
}
int main()
{
int a = 4;
int b = f(a);
cout << b << endl;
return 0;
}
关键字 inline 必须与函数定义体放在一起才能使函数成为内联,仅将 inline 放在函数声明前面不起任何作用。
如下的函数 Foo 不能成为内联函数:
inline void Foo(int x, int y); // inline 仅与函数声明放在一起
void Foo(int x, int y)
{
}
// 而如下的函数 Foo 则成为内联函数:
void Foo(int x, int y);
inline void Foo(int x, int y) // inline 与函数定义体放在一起
{
}
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。