hi ich habe eine Problem mit unions in c. solange ich nur eine Union nutzte klappt es und es wird umgerechnet. Da ich jedoch nicht nur einen Wert umrechnen will brauch ich mehr als eine Union. Union 1: union {float value; unsigned char byte[4];} Wert1; dannach weise ich Wert1.byte[x]jeweils einen Wert zu und bekomme nun einen floatwert. so weit so gut. sobald ich einen 2 union nutzte: union {float value; unsigned char byte[4];} Wert2; und dann eben auch Wert2.byte[x] die Werte zuweise bekomme ich Fehlermeldungen "data definition has no type or starage class" kann ich nur eine Union zur Zeit nutzen? Wie kann ich das Problem umgehen? Gruß Tim
Ein Minimalbeispiel, bei dem der Fehler auftritt, könnte evtl. nicht schaden. Am wichtigsten ist häufig genau die Zeile, auf die die Fehlermeldung zeigt; eine Handvoll Zeilen drumherum wären auch nicht verkehrt.
Die 2. union ist auskommentiert und so klappt das compilieren. sobald ich die wieder rein nehme geht es nicht mehr. Es handelt sich dabei um ein Cgi-File das mir Messwerte ausgibt die in Hex später aus einer Datei eingelesen werden und dann auch in FLoat mit der union umgerechnet werden sollen. gruß Tim
Gib halt der union selbst einfach einen Datentypnamen. Es gibt sowieso keinen Grund warum du 2 mal denselben Datentyp definierst: #include <stdio.h> #include <stdlib.h> union FloatConverter { float value; unsigned char byte[ sizeof float ]; }; int main (void) { unsigned char Wert1[10] ; unsigned char Wert2[10] ; union FloatConverter dr; union FloatConverter st; dr.byte[0]=Wert1[4]; dr.byte[1]=Wert1[3]; dr.byte[2]=Wert1[2]; dr.byte[3]=Wert1[1]; st.byte[0]=Wert2[3]; st.byte[1]=Wert2[2]; st.byte[2]=Wert2[1]; st.byte[3]=Wert2[0]; ...
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.