Bitfeld-Array -> Problem mit Struct

Gast #1293947
Lesenswert?

Hallo zusammen,

ich hab ein kleines Problem: Ich möchte ein paar Daten in einem 
Nibble-Array Packen und habe versucht das ganze per struct in eine 
Variable zu Packen:
1
struct _DataP
2
{
3
  U8     deviceID;
4
  unsigned char   Sign:4;
5
  unsigned char  Norm:4;
6
  unsigned char  Data[8]:4;  // 8 Nibble die man so ansprechen kan DataP.Data[0-7] 
7

8

9
}DataP;

jetzt meckert aber mein GCC mit "bitfield 'Data' has invalied typ"

Ich muss aber die Nibble einzeiln per Variable auslesen können zb 
DataP.Data[i].

Gibts da noch ne andere möglichkeit?

Was passiert eigentlich wenn ich ein Nibble mit so einem Inhalt 0b0001 
nach rechts shifte? Wird die 1 dann ins nächste Nibble geschoben oder 
wird der Nibble einfach 0x00?

grüßle
Gast #1294374
Lesenswert?

..aber du könntest ein array eines bitfeld structes anlegen...

und warum machst du dieses nicht so:
struct _Nibble
{
    uint8_t      nibble:4;
}Nibble;

struct _DataP
{
  U8     deviceID;
  unsigned char   Sign:4,
                  Norm:4;
  Nibble          Data[8];  // 8 Nibble die man so ansprechen kan
}DataP;

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