2015-10-04 98 views
0

enter image description hereDelphi代碼的編譯錯誤

當我編譯我的代碼,我可以看到,有些行不編譯。由於這個問題,一些代碼不會按照我想要的方式執行。 我在調試模式下附加了delphi IDE的屏幕截圖。左邊的藍色圓點表示已編譯的行,沒有藍色圓點的行不能正常工作或不遵守 正如在監視窗口中可以看到變量dPcnt值爲0 taxP,srvP,serv_charge沒有適當的值但在代碼窗口中可以看到變量已被初始化爲0 有人可以幫我解決問題。

+0

幾乎可以肯定的錯誤是在你的代碼。編譯器有權優化沒有可觀察影響的代碼。有時,IDE的藍點不正確。請提供一個演示編譯器錯誤的[mcve]。我準備打賭你不能那樣做,並且你這樣做的嘗試只是表明你的代碼是有缺陷的。 –

+0

您還應該啓用編譯器警告。你會發現你的代碼充滿了他們。 –

+0

爲了清楚我的代碼是什麼意思,沒有影響,你的代碼大部分是這樣的:'a:= 0; a:= something;'和編譯器認識到第一個賦值的無意義。並會警告你。所以,幾乎可以肯定你的代碼是錯誤的,編譯器是對的,直到你做出[mcve]之前,她都沒有問題。 –

回答

2

這是一個已經去掉像

srvP := 0; 

沒用行,因爲你不使用你的值就行分配一個新值之前,770

我看不出如何以及在何處優化其他變量被使用,但我敢打賭原因是相似的。

您可以使用編譯器指令{$O+} or {$O-} {$OPTIMIZATION ON} or {$OPTIMIZATION OFF}打開和關閉優化。但是,請注意有什麼幫助:

除了某些調試情況,您不應該有 需要關閉優化。所有由Delphi編譯器執行的優化都保證不會改變程序的含義。 換言之,編譯器不會執行編程人員需要特別注意的「不安全」優化。

如果你有開啓({$HINTS ON})編譯器提示,你會看到提示的形式H2077 Value assigned to '%s' never used對於那些「沒用」線。 進一步的信息在這裏:

H2077 Value assigned to '%s' never used #Delphi#