铃木gsx250r和春风400:内联函数是怎么回事?

来源:百度文库 编辑:高校问答 时间:2024/04/28 00:04:02
拜托高手们给个形象点的介绍。

内联函数就是在你写完程序后,在编译的时候,引用了内联函数的地方,编译器会将内联函数名换成内联函数体,以减少函数调用的时间消耗。一般情况下,用在函数体比较小,而调用特别频繁的情况下。就好比有一堆西瓜放在那里,普通的函数调用是谁要吃谁就去拿,而内联函数就是提前把西瓜分到了每个要的人的手里,这样就节约了去拿西瓜的时间了。

内联函数跟宏的意思差不多,就是在函数调用的地方,把函数调用语句改成函数体,比如:
inline int fun(int a,int b)
{
return a+b;
}
main()
{
int a=1,b=2,c;
c=fun(a,b);
}
相当于
main()
{
int a=1,b=2,c;
c=a+b;
}
因为函数调用时,CPU要保存现场,要把参数入栈,要把返回值弹出,这是一个很复杂很消耗时间的过程,而内联函数相当于宏,不必处理保存现场,参数入栈等操作,所以速度比一般函数调用要快。
不过一般来说,内联函数要求不能带循环等复杂的结构,否则会被编译器做普通函数处理。
通常内联函数是为了提高函数调用的速度