在delphi中使用inline关键字是什么

14 delphi

任何人都可以说在delphi中使用内联关键字是什么

Hen*_*man 23

这是编译器的一个暗示,函数/过程应该(如果可能的话)内联,即当你调用它时,它应该像宏一样扩展而不是被调用.

这是(非常)小功能的优化,其中呼叫的开销将是显着的.您将在例如windows.pas中找到许多示例

实际发生的事情取决于函数的复杂性,公共/私有访问和Delphi版本.


Mar*_*ort 11

它告诉编译器为内联生成代码; 常规在它被调用的地方,而不是跳到例程并返回.

对于转换为非常短的汇编程序的过程,这可以对性能有益,因为与参数准备,实际调用和过程序言/结尾相比,实际代码相对较短.

如果程序太长,它可能会对性能产生制约作用,并且会大量炸毁你的代码.


Mar*_*rkF 11

其他人已经回答了内联的问题,但我只想指出有一个编译器选项来设置内联开,关或自动.查看D2009文档中的"调用过程和函数",以获得对内联函数的非常好的解释.这是在线文档的链接:

适用于内联的Delphi在线文档