当我在Inno Setup脚本的< code>[Code]部分(Pascal脚本)声明一个全局变量时,它是否自动初始化为零/空值?还是必须显式初始化它(例如在< code>InitializeSetup事件函数中)?
var
GlobalNumber: Integer;
function InitializeSetup(): Boolean;
begin
// Is this necessary?
GlobalNumber := 0;
Result := True;
end;
根据我的经验,变量是零初始化的。不过,我不确定我是否只是运气不好。
我已经完成了10.000次测试代码迭代。全局变量(或各种类型、整数、字符串、指针)始终为零初始化。
变量在Pascal Script afaik中自动初始化。
我想我以前也在文档中的某个地方读过这篇文章,但我在文档中找不到明确的陈述。然而,如果您查看Pascal Script官方手册中的示例,变量也不总是在那里初始化的。例如,在本页的第一段代码中,字符串被添加到Messages
中,而无需预先初始化。
全局变量总是零初始化,但对于局部变量来说,这是不正确的。
这一切都在文档中解释:https://www.freepascal.org/docs-html/ref/refse24.html