1、内联函数
C++中一个函数定义为内联函数,则需要在函数名前面放置关键字 inline
,在调用函数之前需要对函数进行定义。如果已定义的函数多于一行,编译器会忽略 inline
限定符。
在类定义中的定义的函数都是内联函数,即使没有使用 inline
说明符。
例如,
#include <iostream> using namespace std; inline int Max(int x, int y) { return (x > y)? x : y; } // 程序的主函数 int main( ) { cout << "Max (20,10): " << Max(20,10) << endl; cout << "Max (0,200): " << Max(0,200) << endl; cout << "Max (100,1010): " << Max(100,1010) << endl; return 0; }
2、内联函数和普通函数区别
1)编译结果不同
内联函数(有时称作在线函数或编译时期展开函数)是一种编程语言结构,用来建议编译器对一些特殊函数进行内联扩展(有时称作在线扩展);也就是说建议编译器将指定的函数体插入并取代每一处调用该函数的地方(上下文)。普通函数则会编译为单独的模块。
2)编译的时间不同
对于基于C的编译系统,内联函数的使用可能大大增加编译时间,因为每个调用该函数的地方都需要替换成函数体,代码量的增加也同时带来了潜在的编译时间的增加。
3)运行的效率不同
使用内联函数时,必须在程序占用空间和程序执行效率之间进行权衡,因为过多的比较复杂的函数进行内联扩展将带来很大的存储资源开支。