我使用的是帶有所有修補程序和更新的Delphi 2007。*有時*在Delphi中指定常量時出現錯誤
我有一個是由兩個不同的項目文件。在該文件是一個過程,我將簡化如下:
procedure MyProcedure;
const
UniqueValue: integer = 0;
begin
//some code
Inc(UniqueValue);
//some more code
end;
的公司()命令失敗,因爲你不能分配給一個常數。在一個項目中,我得到了一個錯誤(我將這個項目稱爲「準確」)。在另一個項目中,我沒有遇到任何錯誤(我將其稱爲「Bogus」)。我也沒有得到任何警告。我無法弄清楚爲什麼編譯器讓這個不正確的代碼通過。
這是我在項目仿冒者已經嘗試:
1 - 介紹了一個明顯的錯誤,就像在一個行的中間鍵入「slkdjflskdjf」
結果:我得到一個錯誤,這證明它真的試圖編譯這個文件。
2 - 刪除.DCU,並重建項目
結果:.DCU重新生成,再次證明該項目是真正的編譯這種錯誤代碼。
有沒有人對爲什麼會發生這種行爲的看法?更具體地說,爲什麼它會發生在一個項目中,而不是另一個項目中?是否有一些不明確的編譯器選項允許分配給常量?
最後一點:這兩個項目都距離Delphi 5.轉換Delphi下5與類似的代碼,它們都編譯細。
編輯:感謝您的幫助。更改可分配的類型常量指令後,我可以在兩個項目中獲得一致的行爲。我學到了今天新...