Pascal Script 中的全局变量是零初始化的吗?
Are global variables in Pascal Script zero-initialized?
当我在 Inno Setup 脚本的 [Code]
部分(Pascal 脚本)中声明一个全局变量时,它会自动初始化为 zero/empty 值吗?或者我是否必须显式初始化它(例如在 InitializeSetup
event function 中)?
var
GlobalNumber: Integer;
function InitializeSetup(): Boolean;
begin
{ Is this necessary? }
GlobalNumber := 0;
Result := True;
end;
根据我的经验,变量是零初始化的。不过,我不确定我是不是运气不好。
我已经完成了 10.000 次测试代码迭代。全局变量(或各种类型,整数,字符串,指针)总是零初始化。
变量在 Pascal Scriptafaik 中自动初始化。
我想我之前也曾在文档的某个地方读过这个,但我在文档中找不到明确的说明。但是,如果您查看 Pascal Script 官方手册中的示例,变量也不总是在那里初始化。例如,在 this page 上的第一个代码中,字符串被添加到 Messages
之前没有对其进行初始化。
全局变量总是零初始化,但局部变量不是这样。
文档中都有解释:
https://www.freepascal.org/docs-html/ref/refse24.html
当我在 Inno Setup 脚本的 [Code]
部分(Pascal 脚本)中声明一个全局变量时,它会自动初始化为 zero/empty 值吗?或者我是否必须显式初始化它(例如在 InitializeSetup
event function 中)?
var
GlobalNumber: Integer;
function InitializeSetup(): Boolean;
begin
{ Is this necessary? }
GlobalNumber := 0;
Result := True;
end;
根据我的经验,变量是零初始化的。不过,我不确定我是不是运气不好。
我已经完成了 10.000 次测试代码迭代。全局变量(或各种类型,整数,字符串,指针)总是零初始化。
变量在 Pascal Scriptafaik 中自动初始化。
我想我之前也曾在文档的某个地方读过这个,但我在文档中找不到明确的说明。但是,如果您查看 Pascal Script 官方手册中的示例,变量也不总是在那里初始化。例如,在 this page 上的第一个代码中,字符串被添加到 Messages
之前没有对其进行初始化。
全局变量总是零初始化,但局部变量不是这样。
文档中都有解释: https://www.freepascal.org/docs-html/ref/refse24.html