kostenloser Webspace werbefrei: lima-city


Frage zu sizeof Operator (C++)

lima-cityForumProgrammiersprachenC/C++ und D

  1. Autor dieses Themas

    primenic

    primenic hat kostenlosen Webspace.

    Hallo,

    ich hab da mal eine kleine Frage zum sizeof Operator.

    Ich definiere folgende Struktur:

    struct FileHeader
    {
    	int numSceneObjects; // 4 Byte
    	char uuid[32]; // 32 Byte
    	bool hasAnim; // 1 Byte (oder etwa nicht?)
    };


    Nun sollte man doch annehmen, dass die Größe der Struktur 4 + 32 + 1 Byte ist.
    Wenn ich aber die Rückgabe des sizeof Operators in eine Variable schreibe, erhalte ich 40?!
    Wenn aber statt sizeof(FileHeader) folgender Ausdruck verwendet wird,
    int test = sizeof(int) + sizeof(char[32]) + sizeof(bool)

    dann ist das Ergebnis, wie erwartet, 37.

    Hat jemand eine Idee, woran das liegen könne?

    PS: IDE(+Compiler) ist VS2010

    Beitrag zuletzt geändert: 19.3.2011 21:33:33 von primenic
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Es bringt Geschwindigkeitsvorteile, wenn Structs eine Größe haben, die durch 4 Teilbar ist. 37 ist nicht durch 4 teilbar und die nächste passende Zahl ist 40. Daher passt der Compiler die Größe des Structs an.

    Beitrag zuletzt geändert: 19.3.2011 22:00:25 von bladehunter
  4. Autor dieses Themas

    primenic

    primenic hat kostenlosen Webspace.

  5. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!