AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi Procedure vs Function, Vor- und Nachteile
Thema durchsuchen
Ansicht
Themen-Optionen

Procedure vs Function, Vor- und Nachteile

Ein Thema von KodeZwerg · begonnen am 15. Apr 2018 · letzter Beitrag vom 23. Apr 2018
 
Dennis07

Registriert seit: 19. Sep 2011
Ort: Deutschland
491 Beiträge
 
Delphi 11 Alexandria
 
#8

AW: Procedure vs Function, Vor- und Nachteile

  Alt 16. Apr 2018, 15:59
Wie schon richtig gesagt wurde, ist "var" mit "out" identisch.
Und beide sind wiederrum mit "const" funktionsweise identisch: Alles eine referenzbasierte Übergabe, im Grunde gleichbedeutend mit einem Zeiger. Lediglich "const" hat die besonderheit, dass der Compiler dem Programmierer den direkten Zugriff auf die Variable verbietet. Das lässt sich aber auch über ASM umgehen, wenn man es braucht (was nie der Fall sein sollte!). Auch werden "const"-Parameter bei String-Typen ein wenig optimiert (steht so zumindest im DocWiki), ansonsten verhält es sich aber intern exakt wie mit "var" oder "out".
Wer sich ebenfalls etwas mit ASM in Delphi auskennt, der weiß, dass das Ergebnis, genau wie der erste Parameter einer Funktion, bei 32-Bit immer im EAX-Register übergeben bzw. zurückgegeben wird. Strings und Records werden außerdem IMMER als Referenz übergeben. Insofern ist es völlig belanglos, welche dieser Routinen man benutzt, der Code ist in jedem Fall identisch:

procedure Foo(var X: Integer);

procedure Foo(out X: Integer);

procedure Foo(X: PInteger);

function Foo(const X: Integer): PInteger;
Dennis
  Mit Zitat antworten Zitat
 


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 05:04 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