AGB  ·  Datenschutz  ·  Impressum  







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

Ergebnis der Suchanfrage


Datum des Suchindex: Heute, 22:32

Parameter dieser Suchanfrage:

Suche in Thema: Procedure vs Function, Vor- und Nachteile
Suche alle Beiträge, die von "himitsu" geschrieben wurden
• Suchmethode: "Suche nach allen Begriffen"
• Nach Datum (firstpost) sortiert
• Zeige Treffer als Beiträge
Zeige 18 von insges. 18 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 himitsu, 22. Apr 2018
    Uhrzeit (GetSystemTime und Andere) - maximal Millisekunden
    GetTickCount - meistens 15-16 Millisekunden
    QueryPerformanceCounter - schnell, x Nanosekunden
    RDTSC (Read Time-Stamp Counter) - schneller, es waren mal CPU-Ticks

    TThread.GetTickCount - bestimmt GetTickCount :stupid:
    TStopwatch - QueryPerformanceCounter im Windows
    (TPlatformServices.Current as IFMXTimerService).GetTick -...
  • Forum: Programmieren allgemein

    AW: Procedure vs Function, Vor- und Nachteile

      Delphi
      by himitsu, 19. Apr 2018
    ist einer von vielen Standardattributen, abgesehn davon, dass es hier als "Ausnahme" direkt an den Compiler gerichtet ist.
    und wind auch ganz nett.
    http://docwiki.embarcadero.com/RADStudio/Tokyo/de/Compiler-Attribute

    Ansonsten kann man fast Allem auch eigene Attribute zuweisen und per RTTI zur Laufzeit auslesen.
    z.B. gern genommen für's Test-Management, wo man direkt an Methoden seine...
  • Forum: Programmieren allgemein

    AW: Procedure vs Function, Vor- und Nachteile

      Delphi
      by himitsu, 18. Apr 2018
    Jupp, war der Stack. (hatte grade schonwieder "Jupp, waren Register" geschrieben :oops:)
    Aber so steht es bestimmt schon immer da oben drin. :angle2:
  • Forum: Programmieren allgemein

    AW: Procedure vs Function, Vor- und Nachteile

      Delphi
      by himitsu, 17. Apr 2018
    Es gibt Aufrufkonventionen, da landet alles auf dem Stack und nichts in Registern (außer dem Result, der praktisch überall in EAX ist ... abgesehn davon, wo hier der Result zu einem VAR-Parameter gemacht wurde)
    Praktisch landen im "Pascal" die ersten 3 Parameter in Registern (EAX, EDX und ECX, wenn möglich) und der Rest immer auf dem Stack.
    In Methoden gibt es einen "unsichtbaren"...
  • Forum: Programmieren allgemein

    AW: Procedure vs Function, Vor- und Nachteile

      Delphi
      by himitsu, 16. Apr 2018
    ShortString bzw. String .... der alte/erste "String" als Record

    LongString > AnsiString, RawByteString, UTF8String, UnicodeString und alle anderen Ableitungen von AnsiString

    AnsiString und AnsiString(CP) ... ein aufgemotztes dynamisches Array mit Referenzzählung und ANSI-Codepage
    UnicodeString ... ein aufgemotztes dynamisches Array mit Referenzzählung und WideChar
    UCS4String ... ein echt...
  • Forum: Programmieren allgemein

    AW: Procedure vs Function, Vor- und Nachteile

      Delphi
      by himitsu, 16. Apr 2018
    Bei WideString stimmt das, da ohne Referenzzählung, aber die LongStrings im Delphi haben eine Referenzzählung.

    Referenz wird direkt übergeben (die auf den String und nicht auf die Variable) und verwendet, aber mit RefCount+1 ... beim Schreibzugriff kommt dann ein CopyOnWrite da kein UniqueString.
  • Forum: Programmieren allgemein

    AW: Procedure vs Function, Vor- und Nachteile

      Delphi
      by himitsu, 16. Apr 2018
    In LLVM ist es wohl nur nicht möglich für diese "speziellen" VAR-Parameter (Result) den "Variable wurde initialisiert"-Status auf nein zu setzen, zu beginn einer jeden Funktion, welche hier im LLVM ja schon eine Prozedur ist.
    Klang jedenfalls so, als ich schonmal sowas vorgeschlagen hatte.

    Ohne LLVM im eigenen Code wäre sowas bestimmt problemloser machbar gewesen.

    Ob dann nun irgendwann...
  • Forum: Programmieren allgemein

    AW: Procedure vs Function, Vor- und Nachteile

      Delphi
      by himitsu, 16. Apr 2018
    Das Problem ist ja, dass hier nun oft kein eigtändiger Compiler mehr zum Einsatz kommt und (bald) alles über LLVM geschleift wird.

    Im Prinzip müsste "nur" für diese Vaiable der "würde initialisiert"-Status zurückgesetzt werden und schon käme diese Meldung.
    Und nebenbei wird das Kompilieren merklich langsamer, als früher das Eigene.
  • Forum: Programmieren allgemein

    AW: Procedure vs Function, Vor- und Nachteile

      Delphi
      by himitsu, 16. Apr 2018
    Was aber eventuell nichts mit diesem Problem zu tun hat,
    denn wenn dort dieser Result-Record auch als VAR-Parameter in eine neue leere Variable geht, dann wäre es praktisch das Gleiche.
  • Forum: Programmieren allgemein

    AW: Procedure vs Function, Vor- und Nachteile

      Delphi
      by himitsu, 16. Apr 2018
    Bitte meine Beiträge dazu genau lesen.

    Ja, es wird initialisiert, aber eben nicht dort, wo man vermuten könnte (zu Beginn der Funktion),
    also ist aus Sicht der Funktion dieses Result eben nicht "wirklich" initialisiert, zumindestens nicht unbeding mit 0 (einem Leerstring).
  • Forum: Programmieren allgemein

    AW: Procedure vs Function, Vor- und Nachteile

      Delphi
      by himitsu, 16. Apr 2018
    Das liegt aber nur sekundär an diesem Code.
    Dein altes Delphi 7 und dass zuviele böse Programme in Delphi geschrieben wurden und weil viele Virensignaturen einfach nur Schrott sind.

    https://www.virustotal.com/de/ zur Gegenprobe

    Und die eigene Software kann man als False-Positive melden, dann wird die Signatur meist recht schnell angepasst....
  • Forum: Programmieren allgemein

    AW: Procedure vs Function, Vor- und Nachteile

      Delphi
      by himitsu, 15. Apr 2018
    Man darf, vor allem nachdem man schon etwas zugewiesen hat.

    Vor der ersten Zuweisung ist der Wert einfach "undefiniert", so wie bei lokalen Variablen (Integer und so).
  • Forum: Programmieren allgemein

    AW: Procedure vs Function, Vor- und Nachteile

      Delphi
      by himitsu, 15. Apr 2018
    VAR und OUT ist praktisch das Gleiche, außer dass bei OUT per Definition kein Eingabewert existiert, also die Variable initialisiert werden müsste, aber für Typen ala String/Array/Interface bricht der Compiler dieses, da sonst die ordnungsgemäße Speicherverwaltung nicht mehr garantiert werden kann.
  • Forum: Programmieren allgemein

    AW: Procedure vs Function, Vor- und Nachteile

      Delphi
      by himitsu, 15. Apr 2018
    Prozedur für Füllen von Objekten ala Listen, wo es als Result oft ungünstig ist.

    Und Prozedur hat eher Nachteile, denn du brauchst da immer eine "selbstdefinierte" Variable und man kann es nicht direkt weitergeben, z.B. als Parameter an eine andere Prozedur/Funktion oder für's Zusammenrechnen mehrerer Werte ohne Zwischenvariablen.
  • Forum: Programmieren allgemein

    AW: Procedure vs Function, Vor- und Nachteile

      Delphi
      by himitsu, 15. Apr 2018
    function Test: Integer;
    begin
    Result := Result + 1;
    end;
    function Test: string; // procedure Test(var Result: string);
    begin
    Result := Result + 'a';
    end;
    Genau das sagte ich doch.
    Bei Ersten kommt die Fehlermeldung, da der Integer wirklich als lokale Variable existiert, als Result in EAX zurückgeliefert und anschließend der äußeren Variable zugewiesen wird.
  • Forum: Programmieren allgemein

    AW: Procedure vs Function, Vor- und Nachteile

      Delphi
      by himitsu, 15. Apr 2018
    Lesen?

    https://www.delphipraxis.net/1399299-post7.html
  • Forum: Programmieren allgemein

    AW: Procedure vs Function, Vor- und Nachteile

      Delphi
      by himitsu, 15. Apr 2018
    Wie gesagt, der Compiler macht aus solchen Funktionen eben eine Prozedur mit VAR-Parameter
    procedure Test(var Result: string); //function Test: string;
    begin
    Result := Result + 'a';
    end;

    for i := 1 to 5 do
    Test(S); //S := Test;
    ShowMessage(S); // 'aaaaa'
    Grundsätzlich ist das für den Entwickler egal.
  • Forum: Programmieren allgemein

    AW: Procedure vs Function, Vor- und Nachteile

      Delphi
      by himitsu, 15. Apr 2018
    Gerade da ist es total wurscht,
    denn bei gemanagten Typen ala String, Variant, Interface und dynamischen Arrays macht der Delphi-Compiler aus function Beispiel(...): string; eben auch einprocedure Beispiel(...; var Result: string); und kopiert nichts um.

    Leider ist das auch das Problem/die Urache, dass bei Funktionen für das Result keine "wurde nicht initialisiert"-Meldung vom Compiler kommt,...


URL zu dieser Suchanfrage:

https://www.delphipraxis.net/dp_search.php?do=usersearch&search_username=himitsu&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 22:39 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