我的一位同事遇到了一个突然“改变值”的常量;
原来,它被重新声明:
unit Unit1;
interface
const
MyConstant = 1;
implementation
end.
--
unit Unit2;
interface
const
MyConstant = 2;
implementation
end.
--
Uses Unit1, Unit2;
// Uses Unit2, Unit1;
procedure TFrmRedefineConstant.FormShow(Sender: TObject);
begin
ShowMessage('MyConstant: ' + IntToStr(MyConstant));
end;
这表明2
。如果您在 Uses 语句中交换单位顺序,它会显示1
.
很好,但是为什么 Delphi 编译器不警告重复的常量名(这会很有帮助)?
我可以做些什么来启用警告(看起来不是那样)。