union in c

Gast #386224
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
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:
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

Eine eigene Frage? Dieser Thread ist über 20 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

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.