AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Pointer und "^"

Ein Thema von Daniela.S · begonnen am 10. Apr 2010 · letzter Beitrag vom 11. Apr 2010
Antwort Antwort
Seite 2 von 3     12 3      
Delphi-Laie

Registriert seit: 25. Nov 2005
1.474 Beiträge
 
Delphi 10.1 Berlin Starter
 
#11

Re: Pointer und "^"

  Alt 10. Apr 2010, 16:05
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 von NamenLozer:
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.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#12

Re: Pointer und "^"

  Alt 10. Apr 2010, 16:07
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]
Markus Kinzler
  Mit Zitat antworten Zitat
Medium

Registriert seit: 23. Jan 2008
3.686 Beiträge
 
Delphi 2007 Enterprise
 
#13

Re: Pointer und "^"

  Alt 10. Apr 2010, 16:14
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
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat
Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#14

Re: Pointer und "^"

  Alt 10. Apr 2010, 16:15
Zitat von Delphi-Laie:
Zitat von NamenLozer:
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]
  Mit Zitat antworten Zitat
Benutzerbild von mleyen
mleyen

Registriert seit: 10. Aug 2007
609 Beiträge
 
FreePascal / Lazarus
 
#15

Re: Pointer und "^"

  Alt 10. Apr 2010, 16:28
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 @.
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)
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#16

Re: Pointer und "^"

  Alt 10. Apr 2010, 16:33
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
Markus Kinzler
  Mit Zitat antworten Zitat
Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#17

Re: Pointer und "^"

  Alt 10. Apr 2010, 16:35
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
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#18

Re: Pointer und "^"

  Alt 10. Apr 2010, 16:37
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
Markus Kinzler
  Mit Zitat antworten Zitat
samso

Registriert seit: 29. Mär 2009
439 Beiträge
 
#19

Re: Pointer und "^"

  Alt 10. Apr 2010, 16:38

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.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#20

Re: Pointer und "^"

  Alt 10. Apr 2010, 16:39
Oder konsequenterweise immer verwenden um Pointer und Referenzen zu unterscheiden
Markus Kinzler
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


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 06:43 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