请问在Delphi中,inline关键字有什么用途呢?
这是一种向编译器提示的方法,即该函数/过程(如果可能)应内联,即在调用它时应像宏一样展开,而不是被调用。
这是针对(非常)小型函数的优化,在这些函数中,调用的开销会很大。例如在 windows.pas 中有许多示例。
实际发生的情况取决于函数的复杂性、公共/私有访问和您使用的 Delphi 版本。
它告诉编译器在调用内联(inline)例程的地方生成代码,而不是跳转到例程并返回。
对于转换为非常短汇编代码的过程,这可以提高性能,因为实际代码相对于参数准备、实际调用和过程序言/尾声来说相对较短。
但如果过程太长,则可能会拖慢性能,并使您的代码庞大无比。 "Auto"设置应该为您做出此决定,但在特定情况下,您可以将{$inline设为on以强制启用它。 (例如,用于处理位流的zlib函数等C宏翻译为Pascal函数的情况。)
其他人已经回答了inline是什么,但我想指出编译器有一个选项可以设置为inline开启、关闭或自动。请查看"D2009文档"中的"调用过程和函数",那里有一个非常好的inline机制解释。以下是在线文档链接: