delphi分配给const?

non*_*one 3 delphi const

本网站: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)

怎么会这样?

Lar*_*ens 6

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)

  • 应该是WriteLn('测试被称为'+ IntToStr(AssignableConst)+'次'); 最好的祝福, (3认同)