【问题标题】:Why use FillChar to initialize an Integer为什么使用 FillChar 来初始化 Integer
【发布时间】:2012-08-07 22:00:43
【问题描述】:

是否有任何特殊原因可以使用 FillChar 初始化 Delphi 整数变量,而不是仅仅为其分配一个初始值?我遇到过如下代码。它不在速度敏感循环或任何东西中。在这里使用 FIllChar,尤其是在对另一个变量进行更传统的赋值之后立即使用,似乎毫无意义地迟钝。那我错过了什么?

procedure DoSomething;
var
  MyNum: Integer;
  MyPos: Integer;
begin
  MyNum:= 0;
  FillChar (MyPos, SizeOf (MyPos), 0);
  [...]

【问题讨论】:

  • 我们只能猜测,但我怀疑您正在寻找一个困惑的开发人员留下的东西。也许他认为这将是额外的零。
  • FillChar 旨在用于初始化结构(如数组或记录)而不是用于单个值变量。因此,为了提高可读性,只需使用像 MyNum := 0; 这样的简单赋值即可。
  • @Ernest 加 1 用于使用非单词 zero-y
  • 我第二个@TLama。 “额外的零年”可能是我一天的高潮!
  • 我的猜测 - 作者不确定MyPos var 最终是否会成为整数类型,并使用了最通用的归零。也可能他在开玩笑:)

标签: delphi initialization integer


【解决方案1】:

据我所知,当您需要零数组或可变长度数据时,会在这种情况下使用 Fillchar。 在您编写的示例中,我猜开发人员认为 MyPos 将来可以更改其类型(可能是记录?还是记录?)。

【讨论】:

    猜你喜欢
    • 2010-10-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多