Delphi-PRAXiS
Seite 2 von 3     12 3      

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)

Delphi-Laie 10. Apr 2010 15:05

Re: Pointer und "^"
 
Naja, dieses Dach der Tastatur zu entlocken, ist ja eine noch größere Zumutung als die geschweiften Klammern in C & Co.

Hinzu kommt, daß man ständig aufpassen (oder sich vom Compiler belehren lassen) muß, an welcher Stelle dieses Zeichen denn nun korrekt gesetzt wird. Ich konnte (und mochte) es mir jedenfalls bis heute nicht merken.

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.

Jain. Letztlich sind doch alle zugreifbaren Elemente im Speicher adressiert (alle direkt über Speicheradressen aufrufbar?). Dennoch dürfen bei den meisten dieser Elemente Zeigeradressierungen nicht benutzt werden.

mkinzler 10. Apr 2010 15:07

Re: Pointer und "^"
 
Zitat:

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.
Wenn du deinen Code als einmaliges Wegwerfprojekt ansiehst gebe ich dir Recht, sonst absolut nicht!!
[Edit: Zitat eingefügt, auf welches sich mein Beitrag bezieht]

Medium 10. Apr 2010 15:14

Re: Pointer und "^"
 
Hier geht's doch auch denk ich ein bischen um semantische Korrektheit. Wenn ich einen expliziten Zeigertypen verwende, würde eine implizite Dereferenzierung schlicht inkonsequent wirken. Etwas ganz anderes sind da Objektinstanzreferenzen und Methodenzeiger: Diese sind zwar intern auch nur Pointer, aber semantisch ein ganz eigenes Konstrukt! Daher ist die implizite Dereferenzierung hier sehr wohl sinnvoll, also auch bei Zuweisung von Events ohne "@", es sei denn es wird explizit an einen Zeigertypen, nicht einen Methodentypen zugewiesen - aber wer macht das schon :)

Namenloser 10. Apr 2010 15:15

Re: Pointer und "^"
 
Zitat:

Zitat von Delphi-Laie
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.

Jain. Letztlich sind doch alle zugreifbaren Elemente im Speicher adressiert (alle direkt über Speicheradressen aufrufbar?). Dennoch dürfen bei den meisten dieser Elemente Zeigeradressierungen nicht benutzt werden.

Naja, der Unterschied ist folgender: Wenn ich z.B. einen Pointer auf einen Integer habe, erhalte ich, wenn ich ihn dereferenziere, einen bestimmten, fest definierten Typ, nämlich eine Zahl. Was aber erhalte ich, wenn ich eine Funktion dereferenziere? Den Maschinencode an dieser Adresse? Aber was soll das für ein Datentyp sein? Er ist nirgens definiert und zudem noch plattformabhängig. Was sollte ich also damit anfangen? Diese Daten werden vom Compiler generiert und gehen mich im Grunde nichts an. Bei Objekten ist es ebenso, denn auch diese Struktur wird intern vom Compiler verwaltet und könnte sich theoretisch auch mal ändern.

[edit]
Wenn schon Kommasetzung und Rechtschreibung, dann wenigstens richtig.
[/edit]

mleyen 10. Apr 2010 15:28

Re: Pointer und "^"
 
Zitat:

Zitat von mkinzler
Zitat:

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.
Wenn du deinen Code als einmaliges Wegwerfprojekt ansiehst gebe ich dir Recht, sonst absolut nicht!!

Bitte?^^
Meine Firmen/-Privatprojekte werden bestimmt nicht als Wegwerfprojekte angesehen, aufgrund eines nicht gesetztem ^ und @. :shock:
Embaccadillo wird solchen Code sicherlich niemals als fehlerhaft ansehen.
Ich behaupte jetzt mal, dass sich deine Aussage auch auf die Code-Formatierung bezieht. Die wird bei uns eh von jedem so automatisiert umgehauen wie er es haben will.
Und ich bin mir auch sicher, dass man das "^" und "@" auch automatisiert in ein Projekt ein/ausblenden lassen kann. (Der Compiler bemerkt ja auch die richtigen Stellen)

mkinzler 10. Apr 2010 15:33

Re: Pointer und "^"
 
Ja, es bezog sich auch darauf.

Ich finde es aber komisch, dass diejenigen die den korrekten Code verwenden ( mit ^) als ineffektive/teure Programmierer zu brandmarken, weil sie kaufmannisch nicht kostensparend programmieren!

Wobei bei Fehlersuche eher umgekehrt ist, da man Dank des Mehrcodes ( explizite De-/Referenzierung) schnell sihet dass es sich um Pointer handelt

Namenloser 10. Apr 2010 15:35

Re: Pointer und "^"
 
Zitat:

Zitat von mkinzler
Ich finde es aber komisch, dass diejenigen die den korrekten Code verwenden ( mit ^) als ineffektive/teure Programmierer zu brandmarken, weil sie kaufmannisch nicht kostensparend programmieren!

Ich glaube nicht, dass er das ganz ernst gemeint hat :zwinker:

mkinzler 10. Apr 2010 15:37

Re: Pointer und "^"
 
Er hat es aber so geschrieben!
Vielleicht sollte man dann auch Sekretärinnen programmieren lassen, die gaben nämlich mehr Anschläge pro Minute -> mehr Code pro Zeit -> höhere Effektivität :stupid:

samso 10. Apr 2010 15:38

Re: Pointer und "^"
 
:zwinker:
Ich denke, dass man beim dereferenzieren von Zeigern das entsprechende Symbol nicht angeben muss, ist ja vermutlich ein Nebenprodukt der Tatsache, dass man die Angabe dieses Symbol beim Zugriff auf Objekte vermeiden wollte. Dadurch ist Delphi als Programmiersprache aus meiner Sicht nicht mehr konsistent. Man wollte aber wohl den internen Zugriffsmechanismus auf Objekte vor dem Programmierer verbergen, was dann für den Neueinsteiger auch gleich zu Problemen führt. Jedenfalls ist erstmal nicht besonders einleuchtend, warum eigentlich die Zuweisungen eines Rekords den Inhalt kopiert, bei einem Objekt jedoch nur die Referenz kopiert wird. Konsequenterweise muss man also das ^ immer weglassen, oder? Gerade jetzt, wo die Turbo-Pascal-Objekte eine Wiederauferstehung in Form von Records-mit-Methoden feiern.
:zwinker:

mkinzler 10. Apr 2010 15:39

Re: Pointer und "^"
 
Oder konsequenterweise immer verwenden um Pointer und Referenzen zu unterscheiden


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:18 Uhr.
Seite 2 von 3     12 3      

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