内联函数也称内嵌函数,它主要解决程序的运行效率。
#####################问题#########################################
函数调用需要建立栈内存环境,进行参数传递,并产生程序执行转移,这些转移都需要时间开销。
有些函数在程序中使用率较高,但代码却很短。
我们可以在程序当中用表达式替换函数调用,但是降低了函数的可读性。
######################解决方法#################################################
使用内联函数
内联函数必须在被调用前声明或定义。因为内联函数的代码必须在被替换之前已经声称被替换的代码。
注意:
1.在内联函数内不允许用循环语句和开关语句。递归函数是不能用来做内联函数的。
2.内联函数的定义必须出现在内联函数第一次被调用之前。
3.内联函数只适合于1-5行的小函数。对于一个含有很多语句的大函数,函数调用和返回的开销相对来说是微不足道的。
#include <iostream.h>
inline int isnumber(char); // inline 函数声名
void main()
{
char c;
while((c=cin.getc())!= '\n ')
{
if( isnumber(c) ) //调用一个小函数
cout < < "you entered a digit \n ";
else
cout < < "you entered a non-digit \n ";
}
}
int isnumber (char ch) //此处无inline,视为inline
{
return (ch> = '0 '&& ch <= '9 ')?1:0;
}