Object Pascal 过程、函数与数组的深度解析
1. 内联函数相关要点
在 Object Pascal 中,编译器对于可内联函数的大小没有明确限制,也没有特定的构造(如 for 或 while 循环、条件语句)会阻止内联。不过,内联大型函数优势不大,还可能导致代码膨胀,因此应避免。
内联函数存在一些限制和缺点:
- 限制 :方法或函数不能引用单元实现部分中定义的标识符(如类型、全局变量或函数),因为在调用位置无法访问这些标识符。但如果调用的是局部函数且该函数也被内联,则编译器会接受内联请求。
- 缺点 :内联需要更频繁地重新编译单元,因为修改内联函数时,所有调用该函数的代码都需要重新编译。在单元内部,最好将内联函数的代码放在实现部分的开头。
不同单元之间,若要使用内联函数,即使不直接调用,也需要在 uses 语句中添加包含该内联函数的单元。若存在循环单元引用,函数将不会被内联。
以下是一段示例代码:
for I := 0 to LoopCount do
Inc (J, Length(sample));
sw.Stop;
Show ('Length not inlined ' + IntToStr (J) +
' [' + IntToStr (sw.ElapsedMilliseconds) + '] ');
2. Object Pascal 调用约定
当代码调用函数时,调用方和被调用方需要就参数传递的实际方
超级会员免费看
订阅专栏 解锁全文
2

被折叠的 条评论
为什么被折叠?



