:x? was bedeutet das?
-
Hi,
was bedeutet das?
struct Date { unsigned nWeekDay : 3; unsigned nMonthDay : 6; unsigned nMonth : 5; unsigned nYear : 8; };
Also die größe der Struktur scheinen die dinger nicht zu beeinflussen und alle Zahlwerte in diesen variablen beträgt auch 0?
-
bin mir jetzt nicht sicher, aber war das nicht ein bitfeld?
-
Ja, dürfte ein bitfeld sein. Da werden halt nur so viele bist belegt wie hinter dem : angegeben. Die Woche z.B. hat ja nur 7 Tage und mit 23=8 Möglichkeiten reichen 3 bits. Ein bitfeld alleine spaart keinen Platz, aber kompiler können gleichartige bitfelder aneinander reihen. Spart halt platz, Zugriff ist aber langsamer...
Da sich das so schon zu 32 bit aufsummiert, kann man problemlos nach int casten.
-
ness schrieb:
Da sich das so schon zu 32 bit aufsummiert, kann man problemlos nach int casten.
nur 22
und dat ding braucht eh 32 bit platz. also selten so gelacht. 4 unsigned chars und man hat mehr speed, kleineren code, gleichgroße daten und mehr freude dran.aber das war nicht dir frage. ja, es ist ein bitfeld. und probier mal, die größe auf über 32 zu machen, dann sollte sich auch bei sizeof(Date) was rühren.
-
:4 schrieb:
Also die größe der Struktur scheinen die dinger nicht zu beeinflussen
Sicher? Getestet?
Sollte eigentlich nur für den fall sizeof(char)==sizeof(unsigned int) gleich sein.
-
Kann der Compiler die Dinger nicht einfach ignorieren, wenn man ihm nicht explizit das Padding verbietet?
-
Alles falsch. :x isn Smilie!!!11
-
darauf hab ich eigentlich schon im ersten post gewartet
-
MASTA_WISSEN_DELUXE schrieb:
Alles falsch. :x isn Smilie!!!11
lol das hab ich auch zuerst gedacht, als ich den threadtitel gelesen habe x_X
-
MASTA_WISSEN_DELUXE schrieb:
Alles falsch. :x isn Smilie!!!11
Dann haben wir ja alle was gelernt! :p