pascal行內函數如何使用

2022-08-24 04:20:15 字數 680 閱讀 3105

1樓:瓜尼瑪和冬尼瑪

樓上說的不是遞迴呼叫?

我說簡單點:

程式首部加上,然後在要內聯的函式後加上inline;

例如: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據說有一定潛在***

參考資料

2樓:匿名使用者

function aaa(a,b:longint):longint;

begin

aaa:=a+b;

end;

begin

a:=1; b:=2;

c:=aaa(a,b);

end.

這是個例子,aaa函式相當於一個數字

c成員函式是不是都是行內函數,內聯成員函式的優缺點 C

當然不是,或者說,除非特殊的inline宣告,類成員函式都不是行內函數。內聯成員函式的優缺點 c 行內函數必須是和函式體申明在一起,才有效。像這樣的申明inline tablefunction int i 是沒有效果的,編譯器只是把函式作為普通的函式申明,我們必須定義函式體。inline table...

pascal遞迴函式計算ackerman函式值

兩個問題 1 integer太小了,資料早就爆了 2 棧的呼叫過頭了,exitcode 201 的意思就是棧溢位。事實上,阿克曼函式的值是極大的。ackermann 0,n n 1 ackermann 1,n n 2 ackermann 2,n 2 n 3 ackermann 3,n 2 n 3 3...

c成員函式的行內函數能否在類外宣告

我想你把函式的定義和宣告兩個概念混淆了,可以定義在外面,但是宣告肯定是在類內啊。標頭檔案 class a 定義檔案 inline void a foo int x,int y 表明是一個行內函數 若是定義在類內,就是隱式內聯了,比如class a 可以,不過類內必須要有函式宣告 mfc自動生成的文件...