union in c

Gast #386224
Lesenswert?
• ▲
▼
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
Gast #386226
Lesenswert?
• ▲
▼
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
Angehängte Dateien:
#386227
Lesenswert?
• ▲
▼
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];

  ...

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren