Wpis z mikrobloga

@lukasz-ksiazkiewicz: Zakładając, że to system 32bit, to float i int mają po 32bity.
Unia dwóch intów (2x32bit = 8B) i trzech floatów (3x32bit = 12B) zajmuje tyle większa tablica, czyli trzy floaty, 12B. Dodajesz do tego double (1x64bit = 8B) to struktura T zajmuje 20 bajtów, jeśli jest to ciasno upakowane, bajt do bajta (tutaj nazwano to dokładność 1B).

Jednak, aby double mógł być adresowany musi znajdować się na adresie podzielnym przez jego rozmiar, czyli 8B (to chyba ta 'dokładność do 8 bajtów). Zakładając, że unia jest na adresie 0B, to następne wolne miejsce na doubla za unią to 16B, wtedy całkowity rozmiar struktury to 12 + 4 (na padding) + 8 = 24B.

No ale zakładając, że kompilator sobie dobrze radzi z adresem doubla niepodzielnym przez 8,
  • Odpowiedz
@lukasz-ksiazkiewicz: Proszę. Jak będziesz miał wincyj zagwozdek, to możesz śmiało uderzać. Programowania warto się uczyć. Moim zdaniem, najlepszy zawód. ...no najlepszy spośród tych stacjonarnych zawodów. Bo można być ewentualnie czyścicielem okien najwyższych wieżowców na świecie, pracować na platformie wiertniczej czy być kosmonautą, ale... ten... Ja wolę klepać kod i codziennie wracać do domu.
  • Odpowiedz