Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Pointer und "^" (https://www.delphipraxis.net/150218-pointer-und-%5E.html)

Daniela.S 10. Apr 2010 13:48


Pointer und "^"
 
Hallo,

ich hab mal eine Frage bezüglich Pointer. Tut nichts zur Funktion ist auch kein Problem, es geht mir nur um die Schreibweise.

Aus irgendeinem - mir nicht mehr bekannten - Grund hab ich mir angewöhnt beim Zugriff auf ein Objekt mittels Pointer ein "^" Zeichen zu verwenden. Zum Beispiel:

Delphi-Quellcode:
type
  PTreeItem = ^TTreeItem;
  TTreeItem = record
     Text  : String;
     Index : Integer;
  end;

procedure irgendwas;
var
  pItem    : PTreeItem;
begin
  New( pItem );
  pItem^.Text := 'Hallo Welt';
  pItem^.Index := 1;

  ...

  Dispose( pItem );
end;
Das jetzt nur mal so als Beispiel, ohne Sinnhaftigkeit.

Eigentlich ist es ja gar nicht notwendig. Für mich erleichtert es zwar die Lesbarkeit, weil ich dann weiss dass es sich um einen Pointer handelt. Obwohl ich da auch immer die Variable mit einem p beginne. Aber ich frage mich warum ich mir das angewöhnt habe? Kommt das vielleicht gar noch aus TurbaPascal Zeiten? :gruebel:

Sollte man sich das abgewöhnen?


liebe Grüße,
Daniela

dominikkv 10. Apr 2010 13:51

Re: Pointer und "^"
 
Solange du dich damit wohlfühlst würde ich nicht darüber nachdenken, ob mal sollte oder nicht.

PS: ich mach das auch immer mit ^, da man so besser sieht, dass es sich um einen Pointer handelt.

Namenloser 10. Apr 2010 13:55

Re: Pointer und "^"
 
Ich schreibe solche Anweisungen auch immer mit ^, alles andere ist meiner Meinung nach semantisch usninnig und nur für Leute, die zu faul sind, ein zusätzliches Zeichen zu tippen.

mkinzler 10. Apr 2010 13:58

Re: Pointer und "^"
 
Das ist eigentlich auch richtig so. Der Delphicompiler "ergänzt" dies zawr wenn es fehlt, so dass es nicht unbedingt notwendig ist.

mirage228 10. Apr 2010 14:21

Re: Pointer und "^"
 
Zitat:

Zitat von NamenLozer
[...] für Leute, die zu faul sind, ein zusätzliches Zeichen zu tippen.

Hm, ich lasse das Dach eigentlich auch immer weg... :duck:

:mrgreen:

BUG 10. Apr 2010 14:24

Re: Pointer und "^"
 
Freepascal (-> Lazarus) nimmt das genauer (wenn nicht im Delphi-Modus).
Somit ist dein Code sogar portabler.


Wenn du es mal begründen sollst :stupid:

Corpsman 10. Apr 2010 14:36

Re: Pointer und "^"
 
Also ich finde die Verwendung des ^ ebenfalls gut. Weil man die Dereferenzierung wirklich sieht.

Und als Umsteiger von Delphi nach Freepascal ( Lazarus ) bin ich nun Froh dass ich sie gesetzt habe.

FPC Verlangt auch das @ bei der Zuweisung von Notify Events. Delphi will die so viel ich weis glaube ich nicht haben...

mkinzler 10. Apr 2010 14:38

Re: Pointer und "^"
 
Wie gesagt, nur weil der Compiler gutmütiger Weise etwas nicht ganz korrekten Code akzeptiert, heisst das noch lange nicht dass er richtig bzw. das korrekter Code falsch ist. Das ^ ist also nicht überflüssig

Namenloser 10. Apr 2010 14:44

Re: Pointer und "^"
 
Zitat:

Zitat von mirage228
Zitat:

Zitat von NamenLozer
[...] für Leute, die zu faul sind, ein zusätzliches Zeichen zu tippen.

Hm, ich lasse das Dach eigentlich auch immer weg... :duck:

:mrgreen:

Du faules Stück :warn:
Zitat:

Zitat von Corpsman
FPC Verlangt auch das @ bei der Zuweisung von Notify Events. Delphi will die so viel ich weis glaube ich nicht haben...

Wobei man darüber natürlich diskutieren kann. Ich persönlich finde die Schreibweise ohne @ logisch, weil für mich die Funktion bereits die Adresse ist, ähnlich wie es auch bei Objekten der Fall ist.

mleyen 10. Apr 2010 15:02

Re: Pointer und "^"
 
Zitat:

Zitat von NamenLozer
Zitat:

Zitat von Corpsman
FPC Verlangt auch das @ bei der Zuweisung von Notify Events. Delphi will die so viel ich weis glaube ich nicht haben...

Wobei man darüber natürlich diskutieren kann. Ich persönlich finde die Schreibweise ohne @ logisch, weil für mich die Funktion bereits die Adresse ist, ähnlich wie es auch bei Objekten der Fall ist.

Darf ich dazu mal folgendes Gegenargument bringen:
Zitat:

Zitat von NamenLozer
usninnig und nur für Leute, die zu faul sind, ein zusätzliches Zeichen zu tippen.

Imho ist Aussage mist. Denn ich halte es für unsinnig unnötige Zeichen zu schreiben.
Und jetzt noch der kaufmännische Bringer: Es ist sogar kostensparend.

Ich lasse selber das @ auch immer weg, denn es ist funktionierender übersichtlicher Code.
Bei Pointern genau das gleiche nur da ich nahezu nie mit Pointern arbeite, verwende ich das ^ auch kaum.
Im Endeffekt ist es für ein reines Delphiprojekt *schnurz piep egal*, genauso wie bei der Code-Formatierung.


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:56 Uhr.
Seite 1 von 3  1 23      

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