Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   C++ vergleich Delphi/C++ (https://www.delphipraxis.net/63248-vergleich-delphi-c.html)

Hazzard 15. Feb 2006 22:28


vergleich Delphi/C++
 
Programmiere schon einige Zeit mit C++ und hab mich entschieden mal Delphi anzuschauen. Habe einen wunderbaren Guide gefunden ( Vergleich Delphi und C++ ) der viele meiner Fragen beantworten konnte.
Trotz vieler unterschiede ähneln sind die beiden Sprachen sehr, jedoch gibt es einpaar unterschiede die mir nicht direkt einleuchten.

var a: pointer; <-- was ist das C++ Gegenstück zu pointer und ^pointer ?
b: ^pointer;

b := pointer($1D918); Wie ist diese Programmzeile zu verstehen ? Etwa (datentyp)(0x1D918); ??

Schonmal danke im Vorraus

SMO 15. Feb 2006 23:26

Re: vergleich Delphi/C++
 
Zitat:

Zitat von Hazzard
var a: pointer; <-- was ist das C++ Gegenstück zu pointer und ^pointer ?
b: ^pointer;

Pointer ist der allgemeine Zeiger-Datentyp. Also eine Speicheradresse, ohne nähere Informationen, was denn an dieser Adresse steht. Wenn ich mich nicht irre wäre das C++ Gegenstück dazu "void*". ^Pointer ist ein Zeiger auf einen Zeiger, also "void**".

Der Standard-Datentyp "PInteger" (Zeiger auf einen Integer, entspricht int*) ist in Delphi z.B. so definiert:
Delphi-Quellcode:
type PInteger = ^Integer;

Zitat:

Zitat von Hazzard
b := pointer($1D918); Wie ist diese Programmzeile zu verstehen ? Etwa (datentyp)(0x1D918); ??

Diese Zuweisung schreibt den Wert $1D918 in die Variable b, die vom Typ her wahrscheinlich ein Zeiger ist (selbes b wie aus dem Beispiel oben?). In C könnte man einfach "b = 0x1D918" schreiben, in Delphi braucht man den Typecast zu Pointer() da hier die Datentypen strikt getrennt werden, Integer und Pointer sich also nicht einfach so vermischen lassen.

Hazzard 16. Feb 2006 15:18

Re: vergleich Delphi/C++
 
Vielen Dank für die schnelle Hilfe :thumb:

Hätte noch eine frage zum inline Assambler von Delphi. Hab in einen Quellcode folgende Zeile gefunden:

Delphi-Quellcode:
mov eax, [ebx]
Worin besteht der Unterschied zu

Delphi-Quellcode:
mov eax, ebx
?

alcaeus 16. Feb 2006 15:23

Re: vergleich Delphi/C++
 
Das erste verwendet den Inhalt von EBX als Adresse und greift auf den Hauptspeicher an dieser Adresse zu, das zweite verwendet den Inhalt von EBX als Wert ;)

Greetz
alcaeus


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:07 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