Einzelnen Beitrag anzeigen

Assertor

Registriert seit: 4. Feb 2006
Ort: Hamburg
1.296 Beiträge
 
Turbo C++
 
#31

AW: Achtung. Optimierung beim Compiler

  Alt 11. Jun 2010, 11:00
EDIT:
Um die Eingangsfrage zu beantworten: Ja, das Verhalten ist bekannt.
Das wusste ich nicht. Da ich ja blutiger anfänger bin und mich kaum im netz rumtreibe, laufen solchen speziellen info an mir vorbei.

Was ich eigentlich nur erreichen wollte ist, das nicht andere auf diese sache reinfallen. Und keines falls einen Thread erzeugen der nun 3 Seiten lang ist. Eigentlich war es nur als info gedacht.

Macht doch nichts, jeder hat mal angefangen... Aber in der DP hättest Du das auch finden können (sf Optimierung, Schleife):
http://www.delphipraxis.net/89407-co...mierung-2.html
http://www.delphipraxis.net/122117-v...definiert.html

Es soll auch im Delphi Language Guide stehen, das habe ich jetzt aber nicht nachgesehen.

Ich habe Dein Beispiel gerade getestet: Es bringt keine Warnung unter Delphi 2010. Das liegt daran, dass es ja genau der dokumentierte Sonderfall ist, den ich zuvor erwähnte (siehe aktuellere Delphi Hilfe).

Es gibt ohne Break auf jeden Fall eine Warnung:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  i: Integer;
  j: Integer;
begin
    MyArray[5]:=True;
    for i:=low(MyArray) to high(MyArray) do begin
      // if MyArray[i] then break;
      j := i;
    end;
    Label1.Caption:='i ist:'+IntToStr(i);
end;
Bringt:
Zitat:
[DCC Warning] Unit1.pas(37): W1037 FOR-Loop variable 'i' may be undefined after loop
Gruß,
Assertor
Frederik
  Mit Zitat antworten Zitat