pascal 内联函数如何使用?

如题所述

楼上说的不是递归调用?

我说简单点:

程序首部加上{$inline on},然后在要内联的函数后加上inline;

例如:



{$inline on}
var
a,b:longint;

function max(a,b:longint):longint;inline;
begin
if a>b then exit(a) else exit(b);

begin
read(a,b);
write(max(a,b));
end.


具体工作原理不解释了,但是在一些坑题上带来的时间优化效果非常好.
还有,不要什么函数都inline,不仅编译器是选择性接纳inline的,而且inline只对被反复调用的函数有明显的效果,而且inline据说有一定潜在副作用


参考资料:http://tieba.baidu.com/p/2167581823

温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-07-06
function aaa(a,b:longint):longint;
begin
aaa:=a+b;
end;
begin
a:=1; b:=2;
c:=aaa(a,b);
end.
这是个例子,aaa函数相当于一个数字追问

这和普通函数有区别吗???
请解释。。。

追答

http://bbs.pediy.com/showthread.php?p=891170 自己看看吧 比较复杂

相似回答