AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi Ausführung von links nach rechts?
Thema durchsuchen
Ansicht
Themen-Optionen

Ausführung von links nach rechts?

Ein Thema von Mavarik · begonnen am 10. Feb 2017 · letzter Beitrag vom 11. Feb 2017
Antwort Antwort
Benutzerbild von Mavarik
Mavarik

Registriert seit: 9. Feb 2006
Ort: Stolberg (Rhld)
4.154 Beiträge
 
Delphi 10.3 Rio
 
#1

Ausführung von links nach rechts?

  Alt 10. Feb 2017, 13:35
Hallo Zusammen...

War es nicht so, dass man sich auf die Ausführungsreihenfolge verlassen konnte?

Ohne zu Testen: In welcher Reihenfolge werden die Funktionen ausgeführt?

Delphi-Quellcode:
var
  S : String;
begin
  S := Foo1(Foo2('Hallo')) + Foo3;
end;
Eigentlich egal, oder?

Delphi-Quellcode:
var
  S : String;
  Foo : TFooObject;
begin
  S := Foo1(Foo.SetName('Peter',fpMann)) + Foo.GetAnrede;
end;
Jetzt schon nicht mehr...

Mavarik

PS.: Ja, man sollte sowas nicht machen und ja, irgendwo stand mal, dass die Ausführungsreihenfolge nicht sichergestellt ist... Aber war es nicht immer so?
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

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

AW: Ausführung von links nach rechts?

  Alt 10. Feb 2017, 13:45
Nein, die Parameter evaluation order in Delphi ist undefiniert.
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight
  Mit Zitat antworten Zitat
Benutzerbild von Mavarik
Mavarik

Registriert seit: 9. Feb 2006
Ort: Stolberg (Rhld)
4.154 Beiträge
 
Delphi 10.3 Rio
 
#3

AW: Ausführung von links nach rechts?

  Alt 10. Feb 2017, 14:04
Nein, die Parameter evaluation order in Delphi ist undefiniert.
Ja so hieß es immer... Wegen der "Optimierung"...

Aber ich weis das ich vor vielen Jahren das mal getestet habe und die Reihenfolge war immer von links nach rechtes...

Hab gerade so alten Sourcecode gefunden der früher mal lief...

Hat sich im Compiler doch mehr geändert als man denkt...
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.631 Beiträge
 
Delphi 12 Athens
 
#4

AW: Ausführung von links nach rechts?

  Alt 10. Feb 2017, 14:28
Aber ich weis das ich vor vielen Jahren das mal getestet habe und die Reihenfolge war immer von links nach rechtes...
Ich hatte kürzlich mal einen Fall, da war das sogar bei Win32 und Win64 unterschiedlich.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von Mavarik
Mavarik

Registriert seit: 9. Feb 2006
Ort: Stolberg (Rhld)
4.154 Beiträge
 
Delphi 10.3 Rio
 
#5

AW: Ausführung von links nach rechts?

  Alt 10. Feb 2017, 15:10
Aber ich weis das ich vor vielen Jahren das mal getestet habe und die Reihenfolge war immer von links nach rechtes...
Ich hatte kürzlich mal einen Fall, da war das sogar bei Win32 und Win64 unterschiedlich.
Macht man ja auch nicht... Das war so von früher... Lieber eine lokale Variable weniger... Könnte ja Speicher auf den Stack verbrauchen... (und Taktzyklen)...

Mavarik
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

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

AW: Ausführung von links nach rechts?

  Alt 10. Feb 2017, 16:09
Ich kenn jetzt nicht alle Compiler und Programmiersprachen, aber die einzige, die ich kenne, wo das definiert von links nach rechts läuft, ist C# (Quelle)
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight
  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 17:51 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