【发布时间】:2011-12-14 01:33:46
【问题描述】:
我在 Controls.pas(以及其他单元)中发现了这个指令,我很高兴知道它是什么意思。
{$C PRELOAD}
据我所知 $C 表示断言控制,但 PRELOAD 关键字是什么?是不是类似于“在预加载时断言我”?
我在 Delphi 2009 中发现了这个
谢谢
【问题讨论】:
标签: delphi directive compiler-directives
我在 Controls.pas(以及其他单元)中发现了这个指令,我很高兴知道它是什么意思。
{$C PRELOAD}
据我所知 $C 表示断言控制,但 PRELOAD 关键字是什么?是不是类似于“在预加载时断言我”?
我在 Delphi 2009 中发现了这个
谢谢
【问题讨论】:
标签: delphi directive compiler-directives
$C 指令称为Code segment attribute,与关键字 MOVEABLE、FIXED、DEMANDLOAD、PRELOAD、DISCARDABLE、PERMANENT 结合使用可更改代码段的属性。
{$C MOVEABLE DEMANDLOAD DISCARDABLE} // this is setting Code Segment Attribute.
如果您将$C 指令与+ 或- 一起使用,则您正在使用启用或禁用断言代码的生成。
示例:
{$C+} { Assertions - On }
【讨论】:
{$C+} 和 {$C-} 用于断言。 {$C PRELOAD} 是 16 位编程的遗留物,它在运行时立即将单元的代码段预加载到内存中,而不是等待首先访问该段。当 32 位编程出现时,这在 Delphi 2 中变得不必要了,所以我不知道为什么 VCL 源仍在使用它。
【讨论】: