Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

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

AW: Record als Result einer Funktion

  Alt 29. Mär 2020, 23: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.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat