问题标签 [fillchar]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
335 浏览

delphi - 为什么在 Delphi 中使用 FillChar 将 Currency 变量视为常量?

以下代码应该可以编译,并且可以与许多其他类型一起编译。
但是,编译器报告“常量对象不能作为 var 参数传递”错误——尽管变量很明显是一个变量

同样,过程中的局部变量也会出现同样的问题。

我怀疑这与FillChar编译器魔术过程有关,这Dest是一个无类型的var参数。 FillChar是我发现这个问题的唯一例程。

  • 是什么导致了这个问题?
  • 其他类型是否受到影响?

作为对不可避免的“你为什么要那样做评论”的回应:我们有一个代码生成器,它使用 FillChar 来一般地初始化记录结构和原始类型。它适用于其他一切,但意外地与货币失败。我们确实有解决方法,但最好了解根本原因,并了解是否有其他任何事情可能给我们带来麻烦。


编辑

Jeroen 的回答可以合理地得出结论,该问题存在于所有版本的 Delphi 中。此外,货币数组显然表现出类似的问题。

大卫的回答提供了一些不错的解决方法。

最后一个要考虑的解决方法是,修改生成器以将货币作为特殊情况处理,并简单地设置Value := 0.

0 投票
1 回答
589 浏览

arrays - Delphi中如何使用FillChar填充一个3D整数数组(四个字节)?

我知道这有效:

但是,如果数组是整数类型,4字节,上面将无法按预期工作。我在这里要做的是加快以下速度:

通过更换内循环......有什么建议吗?有比 FillChar 更快的方法吗?FillChar 用字节填充,所以这里不好。