![]() |
Procedure Vs. Function
Hallo!
Ich habe mal eine ganz allgemeine Frage zur Performance. Ich habe gerade eine Prozedur geschrieben, die folgende Syntax hat:
Delphi-Quellcode:
nun frage ich mich gerade, ob eine Funktion in folgender Form schneller/sinnvoller wäre:
Procedure AddSum(var Summe : byte);
begin Summe := Summe + [Rechnung...] end;
Delphi-Quellcode:
Ich denke schon, doch wollte ich auch mal eure Meinung dazu hören!
function AddSum(Summe : Byte) : Byte;
begin AddSum := Summe + [Rechnung...] end; Gruss, Steffen |
Es kommt auf den Zusammenhang in dem die Funktion/Prozedur benutzt wird an. Die Prozedur benötigt 2 Speicherzugriffe mehr (am Anfang und am Ende). Jedoch kann es bei der Funktion passieren, dass der zurückgelieferte Wert zuerst einmal aus dem Speicher geladen werden muss um nach der Funktion wieder in der Speicher geschrieben zu werden. Somit entsteht kein Geschwindigkeits-Unterschied.
|
Okay, damit wäre das Geschwindigkeitsproblem geklärt...
Danke! :) |
Re: Procedure Vs. Function
Hallo ich habe auch noch eine Frage zu proceduren, wenn ich in meinem prog eine procedure erstelle, ist es dann nur so möglich das ich alle variablen und objecte die ich in der procedure benötige manuell einbinde?
Also:
Delphi-Quellcode:
Denn ich brauche dort bestimmt 30 Variablen!
procedure gmx(NMPOP3:TNMPOP3;NMSMTP1:TNMSMTP;MAILButton1:TButton.........);
Oder ist es auch möglich durch einen Befehl sofort alle im prog verfügbaren Variablen sofort einzubinden? cu masters001 |
Re: Procedure Vs. Function
Wie wäre es mit einem Record?
|
Re: Procedure Vs. Function
Wenn du in dem Form die Variable hier hinschreibst dann kannst du die Variable in allen Proceduren dieser Unit benutzen
Delphi-Quellcode:
unit Unit1;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs; type TForm1 = class(TForm) private { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; // <--- HIER |
Re: Procedure Vs. Function
Moin Masters,
dafür könnte es sich glatt lohnen einen neuen Typ (Record) zu deklarieren der die ganzen Werte enthält. Dann brauchst Du nur noch eine Variable zu übergeben, und kannst in der Prozedur dann auf die Felder des Records zugreifen. Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:02 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