AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Achtung. Optimierung beim Compiler

Ein Thema von DelTurbo · begonnen am 8. Jun 2010 · letzter Beitrag vom 11. Jun 2010
Antwort Antwort
Seite 4 von 4   « Erste     234   
Assertor

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

AW: Achtung. Optimierung beim Compiler

  Alt 11. Jun 2010, 12: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
Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.027 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#32

AW: Achtung. Optimierung beim Compiler

  Alt 11. Jun 2010, 12:07
Im Debugger sieht man auch nix vom rückwärts laufen, sondern nur im asm code (wurde auch im Eingangspost erwähnt)
Korrektur: Sofern man i nicht innerhalb der Schleife verwendet, kann man auch im Debugger sehen, dass runtergezählt wird. Verwendet man i nach der Schleife (trotz warning) kann es vorkommen, dass nicht abwärts gezählt wird. Der Wert von i nach der Schleife stimmt trotzdem nicht.
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight
  Mit Zitat antworten Zitat
DelTurbo

Registriert seit: 12. Dez 2009
Ort: Eifel
1.212 Beiträge
 
Delphi 2007 Architect
 
#33

AW: Achtung. Optimierung beim Compiler

  Alt 11. Jun 2010, 12:15
Ich habe Dein Beispiel gerade getestet: Es bringt keine Warnung unter Delphi 2010.
Danke, das ist genau das was ich wissen wollte.
Alle meine Rechtschreibfehler sind Urheberrechtlich geschützt!!
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 4 von 4   « Erste     234   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:42 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz