Kleines Problem mit der Union
-
Hallo,
ich bin gerade debei mir eine Strktur für die Werte uebernahme eines Mikrocontrollers in C zusammenzubasteln.Vllt. koennte mir jemand mit meinem kleine Problem helfen.
typedef struct { /* 40 einzelne Bits ... symbolisieren einen SPI-Bus*/ }SPI_BUS; typedef union { unsigned short u_short[6]; //Der komplette Bus wird 2x benötigt SPI_BUS relais_a; SPI_BUS relais_b[2]; //Zur ansteuerung einzelner Bits //zweimal deshalb um uerbschreibung durch //relais_a zu verhindern } ANSTEUERUNG; ANSTEUERUNG relais_obj; void fehlerfunktion(name, relais_name) { relais_obj.relais_b[1].relais_name = .... }
Leider bekiomme ich beim kompilieren stets die fehlermeldung:
compiling cc_test.c... C\cc_test.c(140): error C200: left side of '.' requires struct/union
Der verwendete Kompiler ist KEIL µVision 4.
Schonmal vielen Dank im Vorraus für die Hilfe.
Mit freundlichem Gruß
Die "olle" EuleEDIT:
Wirklich "V o r r a u s" wird zensieert?! -Interessant-
-
Dieser Thread wurde von Moderator/in volkard aus dem Forum C++ (auch C++0x) in das Forum C (C89 und C99) verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
Gibt es denn ein
relais_name
in SPI_BUS?Von welchem Typ sind
name
undrelais_name
beivoid fehlerfunktion(name, relais_name)
?Bitte poste minimalen, compilierbaren Code
-
Die Eule schrieb:
EDIT:
Wirklich "V o r r a u s" wird zensieert?! -Interessant-Dann schau mal im Duden nach warum.
-
Hallo, das Problem hat sich wunderbar gelöst
Ein kleine Kommentarzeile war in ein Makro gerutscht, welches wie folgt lautet.#define ERR_FUN(o_name, var) \ static void o_name (void) {ANSTEUERUNG.relay_a[1].var = TRUE;}
Das Die kommentarzeile in der selben Zeile wie das '\' angelegt war, wurde die folgende Zeile nicht mehr als zum Makro dazugehörig interpretiert, weshlab dann auch 'var' nicht als Platzhalter des Makros sondern als eingenständige Variable interptretiert wurde.
Somit besteht das Problem nicht mehr, trotzdem vielen dank für die schnelle Hilfe.
MfG
EulePS.: Voraus zensiert weil mit zwei 'r' ?! Übersehe ich etwas?! Ist doch weder ein "Schimpfwort" noch eine Beleidigung, oder?
PPS.: Was den Duden angeht.
Zitat:
"Wendungen, Redensarten, Sprichwörter
im /(besonders schweizerisch:) zum Voraus (schon vorher: besten Dank im Voraus; die Miete im Voraus bezahlen)"