Hallo,
mir wurde gesagt, dass ich unbedingt wissen sollte wieviel Byte einzelne chars,int,double bis hinzu struct belegt werden wenn ich C richtig verstehen will. Also ich denke ich habs, bin mir aber bei einigen Sachen nicht sicher. Nehmen wir ich arbeite mit C unter einem 32bit betriebsystem, dann müsste alles wie folgt aussehen:
char = 1Byte
int = 4Byte
long = bin mir nicht sicher, ist es 4 oder 8Byte?
float = das gleiche wie mit long?
double = 8Byte
long double = 10Byte
struct = es werden alle Elemente aufaddiert. Das heißt, wenn man 1 int und 1 char im struct hat, dann hat man 5Byte. Das ist klar, aber bei union verstehe ich die ganze geschichte nicht ganz. Soweit ich weiß, wird von allen die größte Wert genommen. Also habe ich ein struct mit 1 char 1 int und 1 double, dann hat struct die größe von 8Byte. Heißt die Antwort, weil union versucht alles auf einem Speicher zu legen? - das wäre jetzt meine eigene Erklärung.
Ahja noch was, wenn ich zb. int[5] habe, dann ist das sowas wie 5*4 = 20Byte ja? Nehme das mal stark an, denn bei char ist das so, dass char[20] = 1*20 = 20Byte ist. Ich muss leider hier Fragen, denn in C weiß ich nicht wirklich wie ich da nachgucken soll wieviel Byte dies und das ist. Vielleicht kann man das ja auch in C prüfen?
Also korrigiert mich bitte, wenn ich was falsch habe. Danke!
Gruß
mir wurde gesagt, dass ich unbedingt wissen sollte wieviel Byte einzelne chars,int,double bis hinzu struct belegt werden wenn ich C richtig verstehen will. Also ich denke ich habs, bin mir aber bei einigen Sachen nicht sicher. Nehmen wir ich arbeite mit C unter einem 32bit betriebsystem, dann müsste alles wie folgt aussehen:
char = 1Byte
int = 4Byte
long = bin mir nicht sicher, ist es 4 oder 8Byte?
float = das gleiche wie mit long?
double = 8Byte
long double = 10Byte
struct = es werden alle Elemente aufaddiert. Das heißt, wenn man 1 int und 1 char im struct hat, dann hat man 5Byte. Das ist klar, aber bei union verstehe ich die ganze geschichte nicht ganz. Soweit ich weiß, wird von allen die größte Wert genommen. Also habe ich ein struct mit 1 char 1 int und 1 double, dann hat struct die größe von 8Byte. Heißt die Antwort, weil union versucht alles auf einem Speicher zu legen? - das wäre jetzt meine eigene Erklärung.
Ahja noch was, wenn ich zb. int[5] habe, dann ist das sowas wie 5*4 = 20Byte ja? Nehme das mal stark an, denn bei char ist das so, dass char[20] = 1*20 = 20Byte ist. Ich muss leider hier Fragen, denn in C weiß ich nicht wirklich wie ich da nachgucken soll wieviel Byte dies und das ist. Vielleicht kann man das ja auch in C prüfen?
Also korrigiert mich bitte, wenn ich was falsch habe. Danke!
Gruß