struct kopieren?

OP #2595608
Lesenswert?
• ▲
▼
typedef struct {
     unsigned char _RES_LCD:1;
     unsigned char D_I:1;
     unsigned char R_W:1;
     unsigned char Ks0108E1:1;
     unsigned char Ks0108E2:1;
}_LCDPORT;



in funktion1 füllen:

_LCDPORT LCD_CMD_PORT;
LCD_CMD_PORT.R_W = 1;



in funktion2 kopieren
_LCDPORT cmdPort;

cmdPort = LCD_CMD_PORT;  //geht das kopieren des Inhalts auf diese Art 
(ohne memcpy)?
#2595659
Lesenswert?
• ▲
▼
Stefan schrieb:
>
> Hat er es dann kopiert oder nur den Zeiger umgehängt? Ich würde es eher
> mit:
>
> *(&cmdPort) = *(&LCD_CMD_PORT);
>
> probieren.


Wobei Joachim den Zeiger ins Spiel gebracht hat. Der TO wollte den gar 
nicht.
1
  _LCDPORT LCD_CMD_PORT;
2
  LCD_CMD_PORT.R_W = 1;
3

4
  _LCDPORT cmdPort;
5
  cmdPort = LCD_CMD_PORT;

ist absolut perfekt und macht das Gewünschte.
#2595677
Lesenswert?
• ▲
▼
Stefan schrieb:
> Karl Heinz Buchegger schrieb:
>> ist absolut perfekt und macht das Gewünschte.
>
> Nur aus Interesse: würde die von mir vorgeschlagene Lösung funktioneren?

Klar würde es.
(Nicht böse gemeint) Es ist nur ein bischen "von hinten durch die Brust 
ins Auge".

Erst einen Zeiger bilden, nur damit dann der Zeiger dereferenziert wird 
um an die Daten zu kommen. So was macht man nur dann, wenn sich 
zwischendurch der Datentyp ändern muss, weil man den Zeiger auf einen 
anderen Typ umcastet.
Gast #2595696
Lesenswert?
• ▲
▼
Karl Heinz Buchegger schrieb:
> (Nicht böse gemeint) Es ist nur ein bischen "von hinten durch die Brust
> ins Auge".

Na ja, ich habe mir halt gedacht, daß es so "logisch" richtig sein 
müsste :-)


Karl Heinz Buchegger schrieb:
> Erst einen Zeiger bilden, nur damit dann der Zeiger dereferenziert wird
> um an die Daten zu kommen. So was macht man nur dann, wenn sich
> zwischendurch der Datentyp ändern muss, weil man den Zeiger auf einen
> anderen Typ umcastet.

Das leuchtet ein. Wieder was gelernt. Vielen Dank!

Antwort schreiben

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.