Ich habe Probleme mit den Bitfeldern!
-
Hallo,
ich habe nie etwas mit den Bitfeldern programmiert!
Ich habe auch gerade ein Testprogramm getestet, aber ich weiss leider nicht,
wie das Programm zu dieser Ergebnisse kommt!!Hier ist das Ergebnis:
Bitfeld = 4205567
Bit1=0, Bit2=1, Rest=63
Bit1=1, Bit2=1, Rest=2Hier ist das Testprogramm:
#include <stdio.h> struct byte { unsigned bit_1 : 1; unsigned bit_2 : 1; unsigned rest : 6; }; main() /* Bitfelder */ { struct byte b; b.bit_2 = b.bit_1 =1; b.rest = 63; printf("Bitfeld = %d\n", b); b.bit_1--; printf("Bit1=%d, Bit2=%d, Rest=%d\n",b.bit_1, b.bit_2, b.rest); if(b.bit_1 && b.bit_2) b.bit_1++; else b.bit_1--; b.rest&=(b.bit_1+b.bit_2); printf("Bit1=%d, Bit2=%d, Rest=%d\n",b.bit_1, b.bit_2, b.rest); }
Code-Tags machen das Leben leichter
[ Dieser Beitrag wurde am 21.10.2002 um 19:51 Uhr von HumeSikkins editiert. ]
-
printf("sizeof(byte)= %i\n", sizeof(byte));
-
irgendwie das falsche forum hier. richtig wäre K&R C...
-
richtig wäre K&R C
Ham wir nicht.
ANSI-C wird's aber auch tun
-
Wenn du bit_1 zweimal dekrementierst, bekommst du einen Unterlauf und als Wert wieder 1.