Seite 1 von 1
Was bedeuten * und \ im Zusammenhang mit einem Identifier?
Verfasst: 06.09.2017 11:19
von MikeHart
Ich habe zwar massig Erfahrung mit anderen Programmiersprachen, aber PureBasic benutze ich erst seit gestern um damit einen Codeeditor zu erstellen. Bin auf GoScintialla welches die Arbeit mit dem Scintilla Gadget vereinfachen soll.
Im source code finde ich Zeilen wie z.B. die folgende, welche sich mir noch nicht erschliesst.
Dabei habe ich Fragezeichen bzgl.
* und
\ . In der Doku bin ich noch nicht drauf gestossen, insofern meine Frage. Was bedeuted
*this und
*this\callback? Ist *this die Adresse zu einem Object namens
this? Und
*this\Callback die Adresse des Feld
Callback innerhalb des Objects this? Ich dachte bisher das PB nicht objektorientiert ist. Oder handelt es sich hier um eine Struktur namens
this und deren Feld
Callback?
Re: Was bedeuten * und \ im Zusammenhang mit einem Identifie
Verfasst: 06.09.2017 11:24
von NicTheQuick
Wenn du schon mit anderen Programmiersprachen zu tun hattest, dann formuliere ich es einfach:
Du hast eine Variable vom Typ Integer, kannst ihre Speicheradresse einem Pointer vom Typ Integer zuweisen und dann mit dem Pointer arbeiten.
In diesem Fall hat die Struktur 'Integer' genau ein Feld, nämlich 'i.i'. Mit dem Backslash kann man auf dieses Feld zugreifen.
Code: Alles auswählen
variable.i = 5
*pointer.Integer = @variable
Debug *pointer\i
Re: Was bedeuten * und \ im Zusammenhang mit einem Identifie
Verfasst: 06.09.2017 11:42
von MikeHart
Ok, * und @ erschliessen sich mir nun. Das mit dem \ habe ich noch nicht ganz verstanden, ich vermute weil i einmal der Variablentyp Integer darstellt und dann ein Feld in einer Struktur ist?!? Somit wären in meinem Beispiel Callabck und ID eigens definierten Variablentypen oder Felder?
Re: Was bedeuten * und \ im Zusammenhang mit einem Identifie
Verfasst: 06.09.2017 11:48
von NicTheQuick
Ja, das sind dann Felder. Siehe auch mein Video zu
Strukturen und Interfaces. Die ersten paar Minuten sollten reichen.
Re: Was bedeuten * und \ im Zusammenhang mit einem Identifie
Verfasst: 06.09.2017 11:51
von MikeHart
Danke für Deine Hilfe, das werde ich mir heute Abend wenn ich von der Arbeit zurück bin, anschauen.
Im Prinzip sind ja die meisten Programmiersprachen ähnlich, unterscheiden sich dann aber doch in Kleinigkeiten.
Re: Was bedeuten * und \ im Zusammenhang mit einem Identifie
Verfasst: 06.09.2017 12:02
von NicTheQuick
Die Pointer bei Purebasic sind schon etwas speziell, das stimmt. Zum Beispiel gehört das Sternchen vor dem Variablennamen tatsächlich immer zum Namen dazu. Ohne Sternchen ist es eine normale Variable und hat einen eigenen Wert. Strukturfelder können auch Pointer sein, aber wenn man mittels Backslash auf sie zugreift, muss man das Sternchen weglassen. Das ist sehr inkonsequent und kann reichlich verwirren.
Das geht nicht:
Das geht aber:
Code: Alles auswählen
Define *pointer = 1
Define pointer.i = 2
Debug *pointer
Debug pointer
Und hier die Sache mit dem Weglassen des Sternchens:
Code: Alles auswählen
Structure bar
*pointer
EndStructure
Define foo.bar
foo\pointer = 3
Debug foo\pointer