提问者:小点点

Pascal Script中的全局变量是否初始化为零?


当我在Inno Setup脚本的< code>[Code]部分(Pascal脚本)声明一个全局变量时,它是否自动初始化为零/空值?还是必须显式初始化它(例如在< code>InitializeSetup事件函数中)?

var
  GlobalNumber: Integer;

function InitializeSetup(): Boolean;
begin
  // Is this necessary?
  GlobalNumber := 0;

  Result := True;
end;

根据我的经验,变量是零初始化的。不过,我不确定我是否只是运气不好。

我已经完成了10.000次测试代码迭代。全局变量(或各种类型、整数、字符串、指针)始终为零初始化。


共2个答案

匿名用户

变量在Pascal Script afaik中自动初始化。

我想我以前也在文档中的某个地方读过这篇文章,但我在文档中找不到明确的陈述。然而,如果您查看Pascal Script官方手册中的示例,变量也不总是在那里初始化的。例如,在本页的第一段代码中,字符串被添加到Messages中,而无需预先初始化。

匿名用户

全局变量总是零初始化,但对于局部变量来说,这是不正确的。

这一切都在文档中解释:https://www.freepascal.org/docs-html/ref/refse24.html