Jos*_*ons 8 delphi delphi-2007
我正在使用Delphi 2007包含所有补丁和更新.
我有一个文件,由两个不同的项目使用.在该文件中是一个过程,我将简化如下:
procedure MyProcedure;
const
UniqueValue: integer = 0;
begin
//some code
Inc(UniqueValue);
//some more code
end;
Run Code Online (Sandbox Code Playgroud)
Inc()命令应该失败,因为您无法分配常量.在一个项目中,我得到了一个错误(我将该项目称为"准确").在另一个项目中,我没有任何错误(我称之为"Bogus").我也没有收到任何警告.我无法弄清楚为什么编译器会通过这个错误的代码.
这是我在项目Bogus中尝试的内容:
1 - 引入一个明显的错误,比如在一行中键入"slkdjflskdjf"
结果:我收到一个错误,证明它确实正在尝试编译此文件.
2 - 删除.DCU,然后重建项目
结果:重新生成.DCU,再次证明项目真正编译了这个错误的代码.
有没有人想过为什么会发生这种行为?更具体地说,为什么它会出现在一个项目而不是另一个项目?是否有一些模糊的编译器选项允许分配常量?
最后一点说明:这两个项目都是从Delphi 5转换而来的.在Delphi 5下,代码类似,它们都编译得很好.
编辑:谢谢你的帮助.更改可分配的类型化常量指令后,我可以在两个项目中获得一致的行为.我今天学了些新东西...
归档时间: |
|
查看次数: |
444 次 |
最近记录: |