Pytanie - sizeof struct
Ostatnio zmodyfikowano 2017-02-25 00:56
moler Temat założony przez niniejszego użytkownika |
Pytanie - sizeof struct » 2017-02-23 23:02:15 Witam, testowałem sobie dzisiaj wielkość bajtów w strukturach. Natrafiłem jednak, na bardzo dziwną rzecz.
Gdy mamy np.
struct asd{ double x; }; cout<<sizeof(asd)
Wynikiem będzie 8, jednak jeśli dodamy do tego np. zmienną int, czyli
struct asd{ double x; int z;
}; cout<<sizeof(asd)
Wynik będzie już równy 16, domyślam się, że teraz double traktowana jest teraz jako long double.
Byłby ktoś w stanie wytłumaczyć dlaczego tak się dzieje ? |
|
carlosmay |
» 2017-02-23 23:11:04 Wyłącz wyrównywanie rozmiaru i otrzymasz dokładny rozmiar struktury #pragma pack(push, 1) struct asd { double x; int z; }; #pragma pack(pop)
|
|
moler Temat założony przez niniejszego użytkownika |
» 2017-02-23 23:19:13 Faktycznie, teraz wskazuje poprawnie. Dzięki ;) |
|
pekfos |
» 2017-02-23 23:38:49 W obu przypadkach wskazuje poprawnie. Rozmiar struktury >= suma rozmiarów składników. |
|
moler Temat założony przez niniejszego użytkownika |
» 2017-02-24 19:04:24 Jestem dopiero początkujący, nie za bardzo rozumiem, co masz na myśli poprzez "Rozmiar struktury >= suma rozmiarów składników", czemu czasami może być większy a czasami równy? |
|
pekfos |
» 2017-02-24 19:27:44 Dokładnie to oznacza >=. |
|
michal11 |
» 2017-02-25 00:56:01 |
|
« 1 » |