AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi Record als Result einer Funktion
Thema durchsuchen
Ansicht
Themen-Optionen

Record als Result einer Funktion

Offene Frage von "Uwe Raabe"
Ein Thema von NoGAD · begonnen am 27. Mär 2020 · letzter Beitrag vom 30. Mär 2020
Antwort Antwort
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.386 Beiträge
 
Delphi 12 Athens
 
#1

AW: Record als Result einer Funktion

  Alt 29. Mär 2020, 22:12
Joar, irgendwer sitzt auch grade fett auf der Leitung, so langsam wie das hier ist.


Nja, dein Code lässt sich bei mir nichtmal kompiliere.
Auf die schnell sah der Code daher auch bissl anders aus.

Zitat:
if i mod 2 then // [dcc32 Fehler] E2012 Ausdruckstyp muss BOOLEAN sein
In Pascal nimmt IF-THEN nur Boolean-Typen entgegen,
falls FreePascal das im nicht-delphi-kompatiblen Modus das macht, dann naja. (dann da halt wie im C/C++)

Aufgrund der länge hatte ich irgendwie etwas wie x := x + 1; oder + i gesehn.



Dort kommt dann ohne das erste x := 0; natürlich zuerst der Fehler vonwegen nicht initialisiert.
So kommt in vielen Delphis bei Beidem [dcc32 Hinweis] H2077 Auf 'x' zugewiesener Wert wird niemals benutzt .

Bei Schleifen und IFs wird nicht beprüft ob und wieoft etwas ausgeführt wird.
Nur da wo untypisierte Konstanten im IF vorkommen, und sich das durch die Codeoprimierung auf einen einzelnen Boolean kürzen lässt, da weiß dann der Compiler ob der nachfolgende Code im IF niemals ausgeführt wird und ignoriert ihn dann. (wegoptimiert diesen Codeteil)

Also weiß der Compiler nicht, dass das X:= in der Schleife ausgeführt wird und somit auch nicht ob das vorherrige X:= überhaupt nicht nötig ist.
Delphi-Quellcode:
var
  x, i: Integer;
begin
  x := 0; // [dcc32 Hinweis] H2077 Auf 'x' zugewiesener Wert wird niemals benutzt
  for i := 0 to 10 do
    //if i mod 2 then // [dcc32 Fehler] E2012 Ausdruckstyp muss BOOLEAN sein
    if i mod 2 <> 0 then
      x := i; // [dcc32 Hinweis] H2077 Auf 'x' zugewiesener Wert wird niemals benutzt
  //if x = 0 then ;
end;
Aber sicher ist hier, dass die Zuweisungen definitiv niemals verwendet werden und seit Delphi 4 hat mich Delphi immer darauf hingewiesen, kann mich jedenfalls nicht erinnern, dass es mir mal nichts gesagt hätte.
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
venice2
(Gast)

n/a Beiträge
 
#2

AW: Record als Result einer Funktion

  Alt 29. Mär 2020, 23:01
Zitat:
if i mod 2 then
Ja habe es hier getippt und <> 0 vergessen.
Zitat:
Aber sicher ist hier, dass die Zuweisungen definitiv niemals verwendet werden
Richtig wird ja so auch in Delphi 10.3 angeprangert.

Desto-trotz.
Unter Delphi 2010 meldet der Compiler das X nicht initialisiert wird.
Darauf wollte ich hinaus.

Für mich ist das Thema erledigt da es nun nicht mehr um das eigentliche Problem des TE geht.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.386 Beiträge
 
Delphi 12 Athens
 
#3

AW: Record als Result einer Funktion

  Alt 29. Mär 2020, 23:44
Joar, vor allem da dort soein Bug eh nicht mehr behoben wird.

Manchmal ist auch einfach der Wurm drin.
Im XE hatte ich letztens einen meiner geliebten Fatal Error mit zwei Leerzeichnen gebugfixt. (in 10.x wird er dann weg sein und ich kann die Leerzeichen dann wieder entfernen, falls ich's nicht vergesse )
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (29. Mär 2020 um 23:51 Uhr)
  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 19:56 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-2025 by Thomas Breitkreuz