Structur mit Bitvariable

Gast #57618
Hi, ich hätte mal eine C frage.
Ich verwende als C compiler den CodeVisionAVR vers. 1.23.7a und hätte
gerne eine structur mit einer Bitvariable darin erstellt.

struct struct_weiche {
        bit status;
  char portmaske;
  char portbaustein;
  }weiche[64];

Laut Hilfe datei des Compilers ist dies angeblich möglich:
"The structure members can be any of the supported Data Types, arrays
of these data types or pointers to them."
Allerdings bekomme ich beim compiliren dann eine Fehlermeldung
"declaration syntax error" für diese Zeile mit der Bitvariable.
Mein frage: Ist es nicht möglich in einer Strucktur eine Bitvariable zu
verwenden?
Danke! Markus
Gast #57619
Hm,
Ich hab ja immer noch die Hoffnung das es jemand giebt der mir was zu
diesem Thema sagen kann und schieb den Topic mal nach oben ;-).
Giebt doch bestimmt jemand der auch in C programiert und einen anderen
C-compiler verwendet, villeicht könnte derjenige mir den gefallen tun
und versuchen eine structur mit bitvariable zu erstellen dann wüsste
ich obs an meinem Compiler liegt oder ob es grundsätzlich nicht
sinnvoll ist, dies zu ermöglichen.
Ich habe inzwischen auch mal die neuste Version CodeVisionAVR
versucht...ging noch immer nicht.
Nochmals Danke!
Gruß Markus
Gast #57620
Probier´s mal mit Gemütlichkeit :)


typedef enum {true=1, false=0} bool;

typedef struct BitField{
    unsigned int Flag1 : 1;
    unsigned int Flag2 : 1;
    unsigned int Flag3 : 1;
}BitField;

BitField TestBitField;

void main (void){
    TestBitField.Flag1 = true;
    TestBitField.Flag2 = false;
    //...
}

Gruß, Dirk.

PS: Das Buch "Programmieren in C" von K&R hilft
bei solchen Problemen besser als deine Compilerhilfe ,)
Gast #57621
Danke Dirk!

Danke in 2facher hinsicht :p. Ich habe auch ein C-Buch hier rumliegen
aber ich war leider so dämlich nur unter "structur" zu lesen. Hätte
ich unter "Bitfelder" gekuckt hätt ich mir den Post sparen können.
:p

"Probier´s mal mit Gemütlichkeit :)"

Das hatte nix mit Ungeduld zu tun das ich nochmal selbst gepostet habe,
aber hättest du den Topic gelesen wenn er inzwischen auf der 2ten Seite
gelandet wäre? ;)

Frohe Weihnachten!
Gruß Markus

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 22 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.