AGB  ·  Datenschutz  ·  Impressum  







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

Warnmeldungen falsch?

Ein Thema von Privateer3000 · begonnen am 16. Mai 2008 · letzter Beitrag vom 16. Mai 2008
Antwort Antwort
Benutzerbild von Privateer3000
Privateer3000

Registriert seit: 10. Jun 2002
Ort: Jena
1.128 Beiträge
 
Delphi 10.4 Sydney
 
#1

Warnmeldungen falsch?

  Alt 16. Mai 2008, 08:09
Schönen guten Morgen!

Ich habe 2 warnungen die IMHO nicht richtig sein können:
Delphi-Quellcode:
[Warnung] HAUPT.PAS(843): FOR-Schleifenvariable 'yxc' kann nach Durchlauf undefiniert sein
[Hinweis] HAUPT.PAS(758): Auf 'stdiff' zugewiesener Wert wird niemals benutzt
bei der ersten kann ich mir nicht vorstellen dass das richtig ist,
bei der zweiten wird der wert definitiv benutzt
Wie kommt die IDE darauf?

Grüße
Peter
+++Versuch es nicht mit Gewalt + Nimm einen größeren Hammer! +++
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.251 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Warnmeldungen falsch?

  Alt 16. Mai 2008, 08:12
Zitat von Privateer3000:
... bei der ersten kann ich mir nicht vorstellen dass das richtig ist, ...
Hai Privateer3000,

es ist tatsächich so das die "Zählschleife" nur innerhalb der FOR-Schleife einen definierten Wert hat.
Delphi-Quellcode:
var
  blubb : integer;
begin
  for blubb := 1 to 10 do
  begin
  end;
  ShowMessage ('%d',[blubb]); // Hier würde man 10 erwarten muss aber nicht sein.
end;
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Benutzerbild von RavenIV
RavenIV

Registriert seit: 12. Jan 2005
Ort: Waldshut-Tiengen
2.875 Beiträge
 
Delphi 2007 Enterprise
 
#3

Re: Warnmeldungen falsch?

  Alt 16. Mai 2008, 08:25
Zitat von Privateer3000:
Ich habe 2 warnungen die IMHO nicht richtig sein können:
Wie wär's mit ein Wenig Quellcode?
So ist das nur ein Raten ins Blaue hinein.
Klaus E.
Linux - das längste Text-Adventure aller Zeiten...
Wer nie Linux mit dem vi konfiguriert hat, der hat am Leben vorbei geklickt.
  Mit Zitat antworten Zitat
Benutzerbild von Privateer3000
Privateer3000

Registriert seit: 10. Jun 2002
Ort: Jena
1.128 Beiträge
 
Delphi 10.4 Sydney
 
#4

Re: Warnmeldungen falsch?

  Alt 16. Mai 2008, 08:32
Danke fürs antworten

Sorry das ich nicht den quellcode
mit gepostet habe, aber ich dachte
dass diese Meldungen einen eindeutigen
Zustand beschreiben.
Davon abgesehen wäre der auch viel zu lang
mit vielen verschachtelten Schleifen-daher wahrscheinlich auch
die Meldungen.
@Sharky
welche Konsequenz kann das haben,oder ist dies wirklich nur als Hinweis
zu verstehen?!
Peter
+++Versuch es nicht mit Gewalt + Nimm einen größeren Hammer! +++
  Mit Zitat antworten Zitat
Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.611 Beiträge
 
#5

Re: Warnmeldungen falsch?

  Alt 16. Mai 2008, 08:57
Zitat von Privateer3000:
welche Konsequenz kann das haben,oder ist dies wirklich nur als Hinweis
zu verstehen?!
Die Konsequenz kann sein: Du verlässt Dich darauf, dass am Ende der Schleife der letzte Schleifenwert in der Variablen steht und rechnest damit weiter.

In Wahrheit steht aber ein beliebiger Wert darin und verfälscht Dein Ergebnis.

Ergo: Die Warnung ist kein Hinweis sondern eine echte Warnung, und sie warnt Dich davor, falsche Ergebnisse zu produzieren.
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat
Nuclear-Ping
(Gast)

n/a Beiträge
 
#6

Re: Warnmeldungen falsch?

  Alt 16. Mai 2008, 09:03
Zitat von Privateer3000:
Davon abgesehen wäre der auch viel zu lang
mit vielen verschachtelten Schleifen-daher wahrscheinlich auch
die Meldungen.
Nur die relevanten Code-Stellen reichen. Der Compiler irrt sich bei ungenutzten Variablen idR nicht.
  Mit Zitat antworten Zitat
Benutzerbild von BUG
BUG

Registriert seit: 4. Dez 2003
Ort: Cottbus
2.094 Beiträge
 
#7

Re: Warnmeldungen falsch?

  Alt 16. Mai 2008, 09:17
Zitat von Sharky:
es ist tatsächich so das die "Zählschleife" nur innerhalb der FOR-Schleife einen definierten Wert hat.
Das könnte evtl. doch auch an der Optimierung liegen.

MfG,
Bug
Intellekt ist das Verstehen von Wissen. Verstehen ist der wahre Pfad zu Einsicht. Einsicht ist der Schlüssel zu allem.
  Mit Zitat antworten Zitat
Benutzerbild von RavenIV
RavenIV

Registriert seit: 12. Jan 2005
Ort: Waldshut-Tiengen
2.875 Beiträge
 
Delphi 2007 Enterprise
 
#8

Re: Warnmeldungen falsch?

  Alt 16. Mai 2008, 09:28
Zitat von Sharky:
es ist tatsächich so das die "Zählschleife" nur innerhalb der FOR-Schleife einen definierten Wert hat.
Das lernt man schon in der Schule (oder guten Büchern), dass man Zählvariablen niemals ausserhalb von Schliefen weiterverwenden soll.
Man "merkt" sich den Wert in einer anderen Variablen.
Klaus E.
Linux - das längste Text-Adventure aller Zeiten...
Wer nie Linux mit dem vi konfiguriert hat, der hat am Leben vorbei geklickt.
  Mit Zitat antworten Zitat
Benutzerbild von Privateer3000
Privateer3000

Registriert seit: 10. Jun 2002
Ort: Jena
1.128 Beiträge
 
Delphi 10.4 Sydney
 
#9

Re: Warnmeldungen falsch?

  Alt 16. Mai 2008, 09:54
Zitat von RavenIV:
Zitat von Sharky:
es ist tatsächich so das die "Zählschleife" nur innerhalb der FOR-Schleife einen definierten Wert hat.
Man "merkt" sich den Wert in einer anderen Variablen.
Das wäre meine nächste Frage gewesen.
Aber in meinem Falle wird die variable zum schluss auf null geprüft,
bzw. folgt dem rowcount eines stringgrids.
Delphi-Quellcode:
[Warnung] HAUPT.PAS(843): FOR-Schleifenvariable 'yxc' kann nach Durchlauf undefiniert sein
zaer:=elist.rowcount;
for yxc:=1 to zaer-1 do begin
Peter
+++Versuch es nicht mit Gewalt + Nimm einen größeren Hammer! +++
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#10

Re: Warnmeldungen falsch?

  Alt 16. Mai 2008, 10:31
sobald dein rowcount < 2 ist wird die schleife kein einziges mal durchlaufen und die Schleifenvariable wird auch somit gar nicht erst initialisiert (wird ja nicht benötigt wenn die Schleife nicht durchlaufen werden muss)
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  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 18:59 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