Sehr geehrte Damen und Herren, liebe Feger.
Ich habe eine Frage an die Fachwelt. Mit folgende Programmzeilen
erstellt man von a ein Duplikat in b.
1
voidsetup(){
2
Serial.begin(9600);
3
delay(500);
4
5
bytea=123;
6
byte*b=&a;
7
Serial.println(*b);
8
}
9
10
voidloop(){
11
}
Nur ist das kein 1:1 Duplikat, weil b mit benutzt werden muss, um den
Zeiger zu dereferenzieren.
Daher mein Frage:
Gibt es auch ein "echtes" Redefines, also ohne Dereferenzierungsoperator
'*' ? In Erinnerung habe ich eine Fall, wo es ohne Sternchen ging. Es
ging da glaube ich um by-ref Argumente einer Funktion und ein relativ
"neues" Feature in C++ oder c. Ist aber egal ob c oder ++ Danke für
einen Tipp
Grühn schrieb:> Mit folgende Programmzeilen> erstellt man von a ein Duplikat in b.
Nein, macht man nicht. Du erstellst einen Zeiger, der auf a zeigt.
Veraenderst du *b, dann aendert sich auch der Wert von a. Es ist also
kein Duplikat, sondern ein Verweis auf a.
Grühn schrieb:> weil b mit benutzt werden muss, um den> Zeiger zu dereferenzieren.
Kannst du das auch so formulieren, dass man das versteht?
Grühn schrieb:> Gibt es auch ein "echtes" Redefines
Und was soll dieses "echte" von dem "unechten" unterscheiden?
Kaj schrieb:> Kannst du das auch so formulieren, dass man das versteht?
Ich gab mir Mühe. Offenbar ohne Erfolg.
Gesucht ist die Möglichkeit, ein Duplikat einer Variable ohne Sternchen
zu erstellen. Mit "Duplikat" meinte ich nicht den Inhalt des Zeigers und
auch keine Kopie (ja du hast recht, falsches Wort) sondern eine echte
zweite Referenz
Weiß nicht, wie ich es sagen soll.
Grühn schrieb:> Gibt es auch ein "echtes" Redefines, also ohne Dereferenzierungsoperator> '*' ?
Es gibt Referenzen. Deine Funktion würde damit so aussehen:
1
voidsetup(){
2
Serial.begin(9600);
3
delay(500);
4
5
bytea=123;
6
byte&b=a;
7
Serial.println(b);
8
}
> In Erinnerung habe ich eine Fall, wo es ohne Sternchen ging. Es> ging da glaube ich um by-ref Argumente einer Funktion und ein relativ> "neues" Feature in C++ oder c.
Das Feature gab es in C++ schon immer und in C noch nie.
> Ist aber egal ob c oder ++
Nein, ist es nicht.
>> Ist aber egal ob c oder ++>> Nein, ist es nicht.
Doch. Es ist MIR egal. In diesem Fall hier.
Rolf M. schrieb:> Es gibt Referenzen. Deine Funktion würde damit so aussehen:>>
Rolf M. schrieb:> Das Feature gab es in C++ schon immer und in C noch nie.>>> Ist aber egal ob c oder ++>> Nein, ist es nicht.
Ich programmiere doch nicht in C oder C++. Sondern "in Arduino" :-D
Manche sagen Flickschusterei zu Arduino C(++). Ich bin mir nicht sicher,
was es ist. Auf jeden Fall läuft die IDE stabil und der erzeugte Code
ist brauchbar und auch nicht gerade langsam. Ich bin damit völlig
zufrieden und habe bis jetzt auch keine Notwendigkeit gesehen,
ASM-Schnippsel einzubauen. C++ hat andere gewichtige Features, die es
von C unterscheiden (z.B. OOP). Auf diesem Level bin ich gerade nicht.
A. S. schrieb:> OK, Persiflage einer anderen Fahrbe. Gut gemacht (ehrlich, ich bin> ebenso genervt) kann dann aber auch gelöscht werden.
Diskretion bitte! Ich bin heute inflagranti unterwegs ^^
Grühn schrieb:> Rolf M. schrieb:>> Das Feature gab es in C++ schon immer und in C noch nie.>>>>> Ist aber egal ob c oder ++>>>> Nein, ist es nicht.>>> Ich programmiere doch nicht in C oder C++. Sondern "in Arduino" :-D
Das ist C++
> Manche sagen Flickschusterei zu Arduino C(++). Ich bin mir nicht sicher,> was es ist. Auf jeden Fall läuft die IDE stabil und der erzeugte Code> ist brauchbar und auch nicht gerade langsam.
Was zu 0% das Verdienst der Arduino-Leute ist. Die Toolchain (Compiler,
Binutils, Libs, ...) ist avr-gcc & Freunde. Die IDE ist eine
vorgefertigte Texteditor-Komponente aus wasweißich welchem Java
Framework. Anspruchsvoll ist nichts davon. Vor allem wenn man es mit
z.B. avr-gcc vergleicht.
> C++ hat andere gewichtige Features, die es> von C unterscheiden (z.B. OOP).
Oder Referenzen. Danach hattest du ja gerade gefragt. Auch wenn du den
Unterschied zu z.B. Zeigern offensichtlich nicht verstehst.
> Auf diesem Level bin ich gerade nicht.
Meine Meinung über dein Level möchtest du nicht hören. Glaub mir.
Axel S. schrieb:> Meine Meinung über dein Level möchtest du nicht hören. Glaub mir.
Deine Meinung kannst du für dich behalten., Die ist zu 100% falsch,
glaube mir mein Freund. Aber ich kenne diese Art Plapperköpfe aus
jahrelanger Projektarbeit. Die frickeln vor sich hin und sind obendrein
noch der Meinung, wertvoll zu sein. Vor kurzem gerade erst wieder
erlebt. Hat so ein Spast den gemeinsamen Server lahmgelegt. Die
Erklärung: Sequentielle Verarbeitung in SQL, per Cursor. Aber NEIN, man
darf ja gegen eure Heiligkeit nichts sagen. Reuters Leute und Team
Microsoft sind besondes schlim,. Sowohl im der täglichen (Riesen)dosis
Pfusch als auch in der selbstbeweihräucherung.
So langsam macht mir der Thread Angst. Gehören die ernsthaften Antworten
auch zur Persiflage? Sind TO und Komplementhär doch eins? War das
Original schon nur ein Troll, kein ... .
Kann mich jemand per PN Aufklären?
> byte a = 123;> byte *b = &a;>>>Nur ist das kein 1:1 Duplikat, weil b mit benutzt werden muss, um den>Zeiger zu dereferenzieren.
Ein Duplicat? Nichts einfacher als das:
Wie gesagt, ich kenne das nur so. Vollmundige Sprüche, gepaart mit
fachlicher Fragwürdigkeit, ist in der Praxis die Regel. Es sei denn, man
hat mal einen wirklich qualifizierte Kollegen vor sich, was selten genug
ist, kann es auch sinnvoll zugehen: Man hilft sich, statt sich i.d.A. zu
treten.
Wer in der IT was zu bieten hat, hat so ein Theater offenbar nicht
nötig. Aber jeder kann selbst entscheiden, was er sich wert ist.
>> ganz ohne Sternchen ;-)
Das ist eine Kopie des Wertes. Was ich nicht wollte, mich aber wohl
unklar ausgedrückt habe.
Die Aufgabe ist schon gelöst,
> Rolf M. schrieb:>> Es gibt Referenzen. Deine Funktion würde damit so aussehen:>>>>