![]() |
Variable nicht initialisiert?
Hallo,
kann mir mal jemand einen Tipp geben, warum der Compiler hier eine W1036 Warnung, dass i möglicherweise nicht initialisiert wäre ausgibt?
Delphi-Quellcode:
procedure encode(data : TBytes);
var i, mod_d, div_d, len_d : UInt64; hdata : T128; begin len_d := length(data); if (len_d > 0) then begin n := 0; div_d := len_d div 16; if div_d > 0 then { TODO : When 6.5 is started the while should be replaced by the for loop again } //for i := 0 to div_d -1 do i := 0; // Warnung kommt für diese While Schleife, für das While direkt while (i <= div_d -1) do begin x := poly_mult_H(XOR_PointerWithT128(@data[n], x )); inc(n, 16); { TODO : Remove the inc when 6.5 implementation starts } inc(i); end; mod_d := len_d mod 16; if mod_d > 0 then begin hdata := nullbytes; Move(data[n], hdata[0], mod_d); x := poly_mult_H(XOR_T128(hdata, x)); end; end; end; |
AW: Variable nicht initialisiert?
Zitat:
Delphi-Quellcode:
nicht immer vor dem WHILE ausgeführt wird :zwinker:
i := 0;
Verschieb den Teil von diesem IF einfach mit einem MOD in das erste IF, [edit] nee, weil wegen dem letzten IF nach dem WHILE oder das i:=0; vor's IF oder ein BEGIN drumrum |
AW: Variable nicht initialisiert?
Weil i := 0; nun mal nicht initialisiert ist.
Eine Initialisierung findet nur statt wenn Bedingung div_d > 0 erfüllt ist. Einfach unter oder über n := 0; setzen.
Delphi-Quellcode:
Verwendung von i
while (i <= div_d -1) do
Da i aber nur Initialisiert wird wenn obige Bedingung erfüllt ist gibt es hier eine Entsprechende Meldung. i könnte also theoretisch irgendeine Zahl sein weil nicht initialisiert. Solche Fehler sind sehr schwer zu finden! |
AW: Variable nicht initialisiert?
Hallo,
danke, ihr habt beide recht! Hab's inzwischen selber gemerkt. Ist inzwischen gefixt. Grüße TurboMagic |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:49 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz