AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Warum läßt Delphi das zu: Pointertyp(pBla).Member???
Thema durchsuchen
Ansicht
Themen-Optionen

Warum läßt Delphi das zu: Pointertyp(pBla).Member???

Ein Thema von Olli · begonnen am 15. Aug 2005 · letzter Beitrag vom 16. Aug 2005
 
Olli
(Gast)

n/a Beiträge
 
#17

Re: Warum läßt Delphi das zu: Pointertyp(pBla).Member???

  Alt 16. Aug 2005, 12:44
Zitat von negaH:
Delphi-Quellcode:
asm
    MOV EAX,[EDX]
    MOV EAX,[EDX].Member
end;
Alles klar. Dies geht auch beim VC-MASM. Ist nix besonderes, da hier eben nur das Offset dazugerechnet wird. Stattdessen könntest du ja auch nehmen
Delphi-Quellcode:
asm
    MOV EAX,[EDX]
    MOV EAX,[EDX+<offset Member>]
end;
... aber das andere ist lesbarer. Ist also nix besonderes und dient auch nicht der Argumentation, weil es aus anderen Gründen so existiert.

Zitat von negaH:
Der Zugriff auf ein Member eines Records der den Zeiger benötigt erfolgt ohne syntaktisch explizite Dereferenzierung !
Die eckigen Klammern sind bereits eine Dereferenzierung. Diese spezielle Syntax kann man wie oben gezeigt, auch anders schreiben. Dann wird klarer was gemeint ist. Eine Dereferenzierung enthält der Ausdruck dennoch

Wäre es nicht so, müßte folgender Code durchgehen (was er nicht tut):
Code:
    MOV EAX, EDX.Member
Zitat von negaH:
Ja, exakt das ist eine Konsequenz aus der expliziten Derefernzierung, scheußlich das ist (Zitat: Joda).


@tommie-lie: Du weißt, ich gebe dir ungern recht ... hast es dir aber verdient. Die eckigen Klammern sind eben explizite Dereferenzierungen.

BTW: Man kann in Assembler in einem einzelnen Ausdruck nicht mehrere Dereferenzierungen vornehmen ... in Delphi geht dies.

Nachtrag: tommie-lie machte mich gerade darauf aufmerksam, daß vor Member noch ein Typ gehört
  Mit Zitat antworten Zitat
 


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 16:03 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