gpt4 book ai didi

delphi - *有时*在 Delphi 中分配给常量时会出现错误

转载 作者:行者123 更新时间:2023-12-03 14:45:03 24 4
gpt4 key购买 nike

我使用的是带有所有补丁和更新的 Delphi 2007。

我有一个文件被两个不同的项目使用。该文件中有一个过程,我将其简化如下:

procedure MyProcedure;
const
UniqueValue: integer = 0;
begin
//some code
Inc(UniqueValue);
//some more code
end;

Inc() 命令应该失败,因为您无法分配给常量。在一个项目中,我收到了一个与此相关的错误(我将该项目称为“准确”)。在另一个项目中,我没有收到任何错误(我将其称为“Bogus”)。我也没有收到任何警告。我不明白为什么编译器会让这个不正确的代码通过。

这是我在 Bogus 项目中尝试过的方法:

1 - 引入一个明显的错误,例如在一行中间输入“slkdjflskdjf”

结果:我得到一个错误,这证明它确实在尝试编译这个文件。

2 - 删除.DCU,并重建项目

结果:重新生成.DCU,再次证明该项目确实编译了这段错误代码。

有人知道为什么会发生这种行为吗?更具体地说,为什么它会发生在一个项目中而不是另一个项目中?是否有一些晦涩的编译器选项允许分配给常量?

最后一点:这两个项目都是从 Delphi 5 转换而来。在 Delphi 5 下,使用类似的代码,它们都编译得很好。

编辑:感谢您的帮助。更改可分配类型常量指令后,我可以在两个项目中获得一致的行为。我今天学到了一些新东西......

最佳答案

编译器选项中有一个名为“可分配类型常量”的选项。也可以在代码中使用“{$J+}”来启用它。

关于delphi - *有时*在 Delphi 中分配给常量时会出现错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/786403/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com