Hallo zusammen, ich bekomme beim Compilieren mehrfach die gleiche Warnmeldung. (warning: nonstandard type for a bit field) Die Warnung selbst ist nicht weiter kritisch. Doch vor lauter roter Warnungen ist es schwer andere vermeintliche Probleme herauszufiltern. Weiß jemand wie sich bestimmte Typen von Warnungen ausblenden bzw. nicht berücksichtigen lassen? Gruß Bastian
Ich habe dieses Problem auch :-( hat jemand eine Idee was man dagegen tun kann?, hier meine Deklaration
1 | typedef struct |
2 | {
|
3 | unsigned char IHold: 4; |
4 | unsigned char IRun: 4; |
5 | unsigned char VMin: 4; |
6 | unsigned char VMax: 4; |
7 | unsigned char Acc: 4; |
8 | unsigned char Shaft: 1; |
9 | unsigned char StepMode: 2; |
10 | unsigned char AccShape: 1; |
11 | unsigned char TInfo: 2; |
12 | unsigned char TW: 1; |
13 | unsigned char TSD: 1; |
14 | unsigned char UV2: 1; |
15 | unsigned char ElDef: 1; |
16 | unsigned char SteppLoss: 1; |
17 | unsigned char VddReset: 1; |
18 | unsigned char CPFail: 1; |
19 | unsigned char NA: 1; |
20 | unsigned char OVC2: 1; |
21 | unsigned char OVC1: 1; |
22 | unsigned char ESW: 1; |
23 | unsigned char Motion: 3; |
24 | }MotorStatus; |
Gruß Robert
Was soll hier das "unsigned char" bewirken? Das Bitfeld ist in Summe sowieso erheblich größer als ein "unsigned char", also kann da auch "unsigned int" hingeschrieben werden.
Sieh Dir an, wie Bitfelder im C-Standard definiert sind.
ich würd den Typen generell weglassen und nur unsigned oder signed davorschreiben. da eigendlich sowiso jeder typ unsinnig ist, da die größe ja doch eine ganz andere ist.
Rufus t. Firefly schrieb:
> Sieh Dir an, wie Bitfelder im C-Standard definiert sind.
Auf jeden Fall nicht asureichend.
da wichtige details implementation-defined sind, sind bitfelder nicht
portabel, also leider auch zum Datenaustausch zwischen verschiedenen
compiler nicht geeignet.
Und? Das ändert nichts an der Sachlage, daß die Angabe eines im Standard nicht vorgesehenen Typspezifizierers den Compiler zur Ausgabe von Warnungen veranlasst.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.