AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi for-Schleifen - Compiler meint es _zu_ gut!
Thema durchsuchen
Ansicht
Themen-Optionen

for-Schleifen - Compiler meint es _zu_ gut!

Ein Thema von Neutral General · begonnen am 19. Feb 2008 · letzter Beitrag vom 19. Feb 2008
Antwort Antwort
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#1

for-Schleifen - Compiler meint es _zu_ gut!

  Alt 19. Feb 2008, 17:49
Hi,

Folgende Situation:

Delphi-Quellcode:
procedure T3D2File.LoadFromFile(const Filename: PChar);

  procedure ReadHeader(..:);
  var k: Integer;
  begin
    for k:= 0 to 2 do // <---
    begin
      Read(AHeader.Lights[k].Active,SizeOf(Word));
      AHeader.Lights[k].Active := SwapWord(AHeader.Lights[k].Active);
    end;
  end;

var i: Integer;
begin
  // Code
  ReadHeader(...);
  // Code
end;
Und die Schleife fängt bei 3 (!) an und hört bei 1 auf! Der Compiler kann ja meinetwegen optimieren (ich schätze daher kommt das) aber doch nicht bei sowas o.O

Gruß
Neutral General
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
dominikkv

Registriert seit: 30. Sep 2006
Ort: Gundelfingen
1.109 Beiträge
 
Delphi 2007 Professional
 
#2

Re: for-Schleifen - Compiler meint es _zu_ gut!

  Alt 19. Feb 2008, 18:04
eventuell ein begin..end vergesen?
Dominik
Wer anderen eine Grube gräbt, hat ein Gruben-Grab-Gerät!
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#3

Re: for-Schleifen - Compiler meint es _zu_ gut!

  Alt 19. Feb 2008, 18:06
Zitat von dominikkv:
eventuell ein begin..end vergesen?
Oh sorry.. das warn copy&paste Fehler .. jetzt ist es richtig (so wies original im Code steht)
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
jbg

Registriert seit: 12. Jun 2002
3.483 Beiträge
 
Delphi 10.1 Berlin Professional
 
#4

Re: for-Schleifen - Compiler meint es _zu_ gut!

  Alt 19. Feb 2008, 18:08
Zitat von Neutral General:
Der Compiler kann ja meinetwegen optimieren (ich schätze daher kommt das) aber doch nicht bei sowas o.O
Abgesehen vom fehlenden begin/end (was ich mal als Tippfehler annehme) dürfte zwar k rückwärts laufen, aber der temporäre Array-Zeiger, den der Compiler anlegt, dafür vorwärts.

Gruß
Neutral General[/quote]
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#5

Re: for-Schleifen - Compiler meint es _zu_ gut!

  Alt 19. Feb 2008, 18:13
Hi,

Naja...

Delphi-Quellcode:
for k:= 0 to 2 do
  FData.Lights.Add(AHeader.Lights[k].x/100,
                   AHeader.Lights[k].y/100,
                   AHeader.Lights[k].z/100,
                   AHeader.Lights[k].Brightness);
Auch hier spuckt mir der Debugger

k=3 aus (beim ersten durchlauf)

und

AHeader.Lights[k=3].Brightness = 412

statt

AHeader.Lights[0].Brightness = 3

PS: Und dort gibts auch ne AV.
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
jbg

Registriert seit: 12. Jun 2002
3.483 Beiträge
 
Delphi 10.1 Berlin Professional
 
#6

Re: for-Schleifen - Compiler meint es _zu_ gut!

  Alt 19. Feb 2008, 18:15
Schalte doch mal die Code-Optimierung aus, dann sollte der Debugger bessere Werte bringen. Wenn es dann noch kracht, liegt der Fehler nicht am Optimierer.
  Mit Zitat antworten Zitat
Antwort Antwort


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 11:20 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