mikrocontroller.net

Forum: Compiler & IDEs was macht "->" ?


Autor: technikus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Leute,

ich bin heute über folgende c Zeile gestplpert
mode  = ptast->mode;

Was macht der Befehl "->" ?


Gruß
technikus

Autor: Jörg G. (joergderxte)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
C-Buch lesen?
Kurzfassung:
"pointerAufStruct -> member" ist dasselbe wie 
"(*pointerAufStruct).member"

Aber da du wohl so oder so ein C-Buch lesen musst, spare ich mir Details 
;)

hth, Jörg

Autor: Hans (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
In C++ ist das doch ein This-Zeiger weiß nicht ob dir das was hilft, da 
ich noch nicht solang C programmier

Autor: sebastian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@hans & technikus

C Buch lesen!!

@hans

ja, jede instanzierte Klasse (Objekt) hat einen so gegannten this Zeiger 
auf die Member Attribute / Funktionen.

Du kannst auch sagen (*this).Deine_Member_Variable

oder this->Deine_Member_Variable

das ist äquivalent!

Aber this pointer braucht man nur (C++), wenn man einem anderen Objekt 
den Zeiger auf sich selbst (anderes Objekt) geben möchte... aber das is 
eigentlich auch egal und tut nix zur Sache..

wie gesagt jeder der C / C++ / C# .. programmiert sollte wissen, dass

pointer_auf_struct->Member_in_struct dasselbe ist wie

variable_von_struct.Member_in_struct

ist!

Ciao

Autor: Matthias Lipinsky (lippy)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Aber this pointer braucht man nur (C++), wenn man einem anderen Objekt
>den Zeiger auf sich selbst (anderes Objekt) geben möchte...

Und in ST ist das der ADRINST() Operator....
(Wird leider nicht von jeder SPS unterstützt)

Autor: Sven P. (haku) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
sebastian schrieb:
> Aber this pointer braucht man nur (C++), wenn man einem anderen Objekt
> den Zeiger auf sich selbst (anderes Objekt) geben möchte... aber das is
> eigentlich auch egal und tut nix zur Sache..

Den braucht man, wenn ich mich recht entsinne, hin und wieder auch, wenn 
man seine Klassenmitglieder durch andre Variablen oder sowas verdeckt, 
was man natürlich tunlichst vermeiden sollte.

Autor: Mark Brandis (markbrandis)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hans schrieb:
> In C++ ist das doch ein This-Zeiger weiß nicht ob dir das was hilft, da
> ich noch nicht solang C programmier

Ein this-Zeiger heißt so, weil er this heißt ;-) und so aussieht:
this->hier_steht_ein_beliebiger_Member_der_Klasse_von_der_das_Objekt_instanziiert_wurde_mit_dem_man_gerade_rumnudelt

Nur weil da ein -> steht, hat das noch lange nichts mit this zu tun. Vor 
dem -> kann ja auch was völlig anderes stehen.

Sven P. schrieb:
> sebastian schrieb:
>> Aber this pointer braucht man nur (C++), wenn man einem anderen Objekt
>> den Zeiger auf sich selbst (anderes Objekt) geben möchte... aber das is
>> eigentlich auch egal und tut nix zur Sache..
>
> Den braucht man, wenn ich mich recht entsinne, hin und wieder auch, wenn
> man seine Klassenmitglieder durch andre Variablen oder sowas verdeckt,
> was man natürlich tunlichst vermeiden sollte.

Oh Mann... ich seh schon, hier sind die wahren C++ Experten am Start. 
:-)

Autor: Ingo Laabs (grobian)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Guten morgen liebe Forumer,

hätte da auch ne Frage:
was macht " ^= " ?

Gruß aus Berlin

Autor: Ed (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

foo ^= bar;
ist die Kurzform für
foo = foo ^ bar;
wobei ^ der bitweise XOR-Operator (exklusives Oder) ist.

-Ed

Autor: Ingo Laabs (grobian)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
bedeutet also wenn ich eine Maske verknüpfe

0 + 0 = 0
0 + 1 = 1
1 + 0 = 1
1 + 1 = 0
??

Autor: Ahem (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>bedeutet also wenn ich eine Maske verknüpfe

>0 + 0 = 0
>0 + 1 = 1
>1 + 0 = 1
>1 + 1 = 0
>??

Ich kann gerade Deinem Satzbau nicht folgen. Was ist die Frage?

Wenn, dann müsste es jedenfall so heissen:

0 ^ 0 = 0
0 ^ 1 = 1
1 ^ 0 = 1
1 ^ 1 = 0

Das ^ ist in C das Zeichen für die Exklusiv-Oder Verknüpfung.
Insofern stimmt Deine Wertetabelle.

Autor: Ingo Laabs (grobian)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
+ sollte ^ heissen  ..sorry..der Morgen halt

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.