【发布时间】:2014-11-28 12:43:23
【问题描述】:
在审查旧程序代码的过程中,出现了以下问题:方法中的所有局部变量都在开始后立即初始化。通常不初始化局部变量。但是我们有一个过程,其中所有变量都初始化为 0。有人知道这是怎么发生的吗?
例子:
type
TPrices = array[0..10, 0..5] of Integer;
procedure DoSomething();
var
mPrices : TPrices;
mValue : Integer;
begin
if (mPrices[0,0] = 0) then
MessageDlg('Zero', mtInformation, [mbOK], 0);
if (mValue = 0) then
MessageDlg('Zero Integer', mtInformation, [mbOK], 0);
end;
【问题讨论】:
-
这真的是那个 Q @TLama 的骗子吗?
-
@David,那里有答案。但是,例如
this one更好。会有更多... [我会重新打开这个] -
@TLama “这个”问题与方法/过程中的局部变量无关,而是与全局变量有关。我更喜欢用于复制的那个。
-
@Lasse,是的,但如果我们是迂腐的,我们可以按照标题到重复的问题链接说“这个问题已经在这里有答案”。这两个问题都有答案。我会亲自将询问“非托管类型的局部变量如何初始化?”的问题与询问“变量一般如何初始化?”的问题联系起来。 .
-
@DavidHeffernan:虽然我确实同意将所有内容放在一个自上而下的回复中很好——关于简短的回答,也有一些话要说。由于我正在从 D2006 移植一个遗留项目(使用 TMS unicode hell),因此我在谷歌上搜索了所有已发生的字符串更改以仔细检查 10.2 的状态。我必须点击 8 次才能找到答案 861045,然后是这个。我只能想象这是一个完整的新手体验。也许允许一些直接的答案通过,然后在对主要回复的引用中发表评论?
标签: delphi variables initialization