Forum: Compiler & IDEs Array aus Bit´s ?


von mikes (Gast)


Lesenswert?

Hallo allsamt,

Wie kann ich ein 2 dimensionales Array aus Bits def.?

ich dachte:

volatile bit [5][11];

aber da meckert er immer und sagt, er vermisst ein";"

Wär super wenn ihr mir helfen könntet.

Dank und Gruß

von T. Stütz (Gast)


Lesenswert?

@mikes

Wäre schön wenn du uns verraten würdest für welchen Prozessor und
welcher Compiler verwendet wird.

Annahme: C16x und Keil uVision 2/3 => Handbuch lesen
"Array oder Zeiger auf Bit nicht möglich"

Was möglich ist :

struct bitstruktur {
   unsigned int bMask : 11;
   unsigned int bRest :  5;

} bbb[5];

Sogenannte Bit-Felder müßen dann aber immer vielfahce von 8/16 sein

Gruss

von mikes (Gast)


Lesenswert?

Hallo,

>Wäre schön wenn du uns verraten würdest für
>welchen Prozessor und welcher Compiler verwendet wird.

Zu meiner Entschuldigung:
Ich bin davon ausgegangen, das in einem GGC Forum der Compiler nicht
explizit genannt werden muss, wenn es sich um einen solchen handelt.
Auch dachte ich dies eine prozessorunabhängige Frage war, da sie ja
eigentlich nur vom Compiler abhängt, oder sitze ich da auf dem falschen
Pferd?

Danke für deinen Hinweis


Gruß

von Μαtthias W. (matthias) Benutzerseite


Lesenswert?

Hi

den Datentyp bit gibt es in C nicht. Was es in C99 gibt is bool. Das
wird zwar so behandelt wie ein bit wird aber eigentlich immer als
größerer Datentyp (ob jetzt int8_t, int16_t, int oder implementation
defined kann ich dir grade nicht sagen -> Standard nicht zur Hand)
dargestellt.

Matthias

von T. Stütz (Gast)


Lesenswert?

@mikes

Sorry - du hast Recht wenn du in einem GCC Forum postest sollte ich
auch daran denken !-)

Damit bleibt dir nur die möglichkeit eine Struktur mit Bitfeldern zu
definieren => voriger Post, letzter Teil.

@Matthias Weißer
Allerdings gibt es uC die einen bitadressierbaren Datenbereich haben
Ob der GCC für C16x damit umgehen kann weiß ich nicht - der Keil
Compiler hat dafür einen eigenen Datentyp "bit".

Gruss

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
Noch kein Account? Hier anmelden.