1. 什么是内联函数?
内联函数,从形式上看就是普通函数首部前添加了一个inline,形式如下
inline(参数列表)
{
//语句
};
2. 为什么引进内联函数?
内联函数与普通函数的区别在于,内联函数的调用不会转移程序控制权,而是在调用点处进行”内联”展开函数体,类似于宏展开(区别在于宏展开是由预处理器负责,而内联展开由编译器负责)。这样一来,可避免普通函数调用带来的开销。
3. 什么情况适合用内联函数?
当代码量只有几行(一般5行以内),语句简单的时候。
因为,如果代码量大,会导致展开后的程序出现大量的重复“内联代码”,会消耗空间。
内联函数一般放置于头文件中。程序中多个源文件关于一个内联函数的定义必须保持一致。
4.几点注意事项
递归函数不能作为内联函数(显然不能,总不能递归展开代码吧)
含有控制语句和开关语句的不能作为内联函数。
“inline”只是一个请求,编译器可根据实际情况,选择强制函数为普通函数。