AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Suchfunktion Ergebnis der Suchanfrage

Ergebnis der Suchanfrage


Datum des Suchindex: Heute, 21:17

Parameter dieser Suchanfrage:

Suche in Thema: Procedure vs Function, Vor- und Nachteile
Suche alle Beiträge, die von "Zacherl" geschrieben wurden
• Suchmethode: "Suche nach allen Begriffen"
• Nach Datum (firstpost) sortiert
• Zeige Treffer als Beiträge
Zeige 12 von insges. 12 Treffern
Suche benötigte 0.001s

Es liegen Ergebnisse in folgenden Bereichen vor:

  • Forum: Programmieren allgemein

    AW: Procedure vs Function, Vor- und Nachteile

      Delphi
      by Zacherl, 17. Apr 2018
    Korrekt. Bestimmt ein Schreibfehler :P
  • Forum: Programmieren allgemein

    AW: Procedure vs Function, Vor- und Nachteile

      Delphi
      by Zacherl, 16. Apr 2018
    Triviale Typen wie Integer werden immer direkt in ein Register geschoben oder auf den Stack gepusht. Vollkommen egal, ob du const verwendest oder nicht. Dynamische Arrays verhalten sich eigentlich 1 zu 1 wie Strings (Ref-Count Mechanik, Copy on Write, etc). Statische Arrays (array of Integer) wie folgt:

    Ohne const:
    Unit2.pas.29: begin
    005CE298 55 push ebp
    005CE299 8BEC ...
  • Forum: Programmieren allgemein

    AW: Procedure vs Function, Vor- und Nachteile

      Delphi
      by Zacherl, 16. Apr 2018
    Puh, das sind alles Informationen, die ich im Laufe der Jahre aus verschiedenen Quellen und durch Beobachtung zusammengetragen habe. Also insbesondere zum const kann ich dir sagen, dass Records bis 4/8 Byte (je nach 32- bzw. 64-bit) direkt übergeben werden (da die Werte ja dann direkt in ein Register bzw. auf den Stack passen) und erst danach werden (meistens) Referenzen verwendet. Dazu steht im...
  • Forum: Programmieren allgemein

    AW: Procedure vs Function, Vor- und Nachteile

      Delphi
      by Zacherl, 16. Apr 2018
    Jap, aufpassen muss man hier aber schon. Also ganz egal welche Art der Übergabe man verwendet, ist es ja dann nicht.
  • Forum: Programmieren allgemein

    AW: Procedure vs Function, Vor- und Nachteile

      Delphi
      by Zacherl, 16. Apr 2018
    Hier muss man schon aufpassen. Im Falle eines nicht-const/var/out Strings wird keine direkte Referenz übergeben, sondern lokal ein neuer mutable String erzeugt. Ansonsten würde man ja die übergebene Instanz modifizieren können - was definitiv unerwünscht ist. Auch im Falle von Record stimmt es NICHT, dass immer Referenzen übergeben werden. Das hängt mitunter z.B. von der Record-Größe ab. Selbst...
  • Forum: Programmieren allgemein

    AW: Procedure vs Function, Vor- und Nachteile

      Delphi
      by Zacherl, 16. Apr 2018
    Jap schon klar :) Das ist aber mehr als ausreichend, weil die Optimierungen ja trotzdem schon dem Intermediate Layer durch LLVM ausgeführt werden sollten. Wenn die Übersetzung nach X86 dann nicht absolut versaut wird, sollten wir deutlich bessere Kompilate bekommen. Cool auf jeden Fall.
  • Forum: Programmieren allgemein

    AW: Procedure vs Function, Vor- und Nachteile

      Delphi
      by Zacherl, 16. Apr 2018
    Auch die Win32/64 Kompilate? Das wäre wunderbar. Ich bin sicher LLVM schafft solche Optimierungen auch ohne ungewollte Nebeneffekte umzusetzen.
  • Forum: Programmieren allgemein

    AW: Procedure vs Function, Vor- und Nachteile

      Delphi
      by Zacherl, 16. Apr 2018
    Damit wollte ich vor allem die Inkonsistenz aufzeigen.


    Nee, das nicht. Strings werden in Delphi Heap-allocated.


    Das ist ein wichtiger Punkt. Bin auch der Meinung, dass zumindest die "nicht initialisiert" Meldung trotzdem angezeigt oder die ganze Optimierung anders umgesetzt werden sollte.
  • Forum: Programmieren allgemein

    AW: Procedure vs Function, Vor- und Nachteile

      Delphi
      by Zacherl, 16. Apr 2018
    Selbst bei den class operator werden temporäre R-Values verwendet. Wenn man beispielsweise die Addition eines Record überläd, wird ein komplett neuer temporärer Record erstellt und als Ergebnis des Operators zurückgeliefert, welcher dann letztlich der L-Value zugewiesen wird (was meiner Meinung nach schon ziemlicher Schwachsinn ist, aber okay ...). Dadurch dass der String intern als var Parameter...
  • Forum: Programmieren allgemein

    AW: Procedure vs Function, Vor- und Nachteile

      Delphi
      by Zacherl, 16. Apr 2018
    Unintuitiv ist das Verhalten allerdings schon. Bei einer Funktion in Delphi erwarte ich grundsätzlich temporäre R-Values. Andere Sprachen - wie z.b. C++ - erlauben ja auch die Rückgabe von Referenzen, da ist das Verhalten aber einheitlich.
  • Forum: Programmieren allgemein

    AW: Procedure vs Function, Vor- und Nachteile

      Delphi
      by Zacherl, 15. Apr 2018
    var ist genau wie (meistens) const ein "pass by reference", also stimmt das schon mit der Vermeidung von unnötigen Kopieroperationen. Da ein Output Parameter ja aber gewünscht ist, macht const hier keinen Sinn :gruebel:



    Nöö. var ist runtergebrochen auf den generierten Code exakt gleichwertig zu out (auch wenn out gegebenenfalls aus Gründen der Übersichtlichkeit zu bevorzugen ist).
    ...
  • Forum: Programmieren allgemein

    AW: Procedure vs Function, Vor- und Nachteile

      Delphi
      by Zacherl, 15. Apr 2018
    Ziemlich wurscht. Wenn man einen Rückgabewert hat, sind Funktionen zu bevorzugen, da sie intuitiver sind und genau für diesen Zweck entwickelt wurden. In seltenen Fällen (bei Übergabe großer Strukturen bzw. Strings, etc.) kann ein var Parameter sinnvoll sein, um Kopieroperationen zu vermeiden. Muss man sich im Normalfall aber keine Gedanken drüber machen.

    Auf Assembler-Ebene gibt es keine...


URL zu dieser Suchanfrage:

https://www.delphipraxis.net/dp_search.php?do=usersearch&search_username=Zacherl&search_exact_username=1&search_sortby=dateline&search_resulttype=post&search_matchmode=0&searchthreadid=196015
Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:34 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