本网站:http://www.drbob42.com/delphi/wizards.htm
在底部显示了一个非常令人费解的代码
unit ShareMem;
{ (c) 1997 by Bob Swart (aka Dr.Bob - http://www.drbob42.com }
interface
const
...
uses
Windows;
const
Handle: THandle = 0;
...
function GetCommandLine: PChar; stdcall;
external 'kernel32.dll' name 'GetCommandLineA';
...
begin
Handle := LoadLibrary('BCBMM.DLL');
end.
Run Code Online (Sandbox Code Playgroud)
怎么会这样?
Delphi有一个称为可分配的consts,允许分配const值.这可以通过编译器指令和开关打开/关闭.如需更长的答案,请参阅此处.
在有可能获得阶级属性之前,它有时会派上用场.即使const在函数内声明,它也会在调用之间保持其值.
procedure Test;
{$WRITEABLECONST ON}
const
AssignableConst: Integer = 0;
{$WRITEABLECONST OFF}
begin
AssignableConst := AssignableConst + 1;
WriteLn('Test is called ' + IntToStr(AssignableConst) + ' times');
end;
Run Code Online (Sandbox Code Playgroud)