Wpis z mikrobloga

@BotRekrutacyjny: int ma byc wiekszy badz rowny od short int i mniejszy badz rowny od longa. Takie ma ograniczenia. Jesli chcesz miec odpowiednia bitowosc korzystasz z typow int64_t i podobnych, tam masz gwarancje co do tego jak ten int wyglada.
  • Odpowiedz
@Kaczus2B: mój int ma wielkość 4B
Pytanie zadałem, bo obiekt składający się z 3 elementowej tablicy double zwraca mi wielkość 24B, a obiekt innej klasy, który składa się z inta określającego rozmiar tablicy i wskaźnika na tablicę 3 elementową typu double 16B, dlaczego akurat 16?
  • Odpowiedz
@BotRekrutacyjny: jest jeszcze cos takiego jak wyrownanie struktur. Jesli chcialbys miec dokladnie taka strukture/klase, jaka chcesz, musi byc ona 'pakowana" - dzialac wtedy moze wolniej, ale rozmiar bedzie miala dokladny jako sume rozmiarow elementow co do elementow z ktorych jest zlozona
  • Odpowiedz
mój int ma wielkość 4B

Pytanie zadałem, bo obiekt składający się z 3 elementowej tablicy double zwraca mi wielkość 24B


@BotRekrutacyjny: Poszukaj za "struct padding" i "struct alignment". Na linuxa jest pahole ktory pokazuje ci uklad twojej struktury. Dla Visual Studio skompiluj z flaga /d1reportSingleClassLayoutXXX, gdzie XXX to nazwa twojej klasy lub /d1reportAllClassLayout zeby zobaczyc wszystkie.
  • Odpowiedz
int ma byc wiekszy badz rowny od short int i mniejszy badz rowny od longa. Takie ma ograniczenia. Jesli chcesz miec odpowiednia bitowosc korzystasz z typow int64_t i podobnych, tam masz gwarancje co do tego jak ten int wyglada.


@Kaczus2B: @BotRekrutacyjny:

Jeszcze tylko dorzuce odpowiedni fragment standardu potwierdzajcy to co mowi @Kaczus2B https://eel.is/c++draft/basic.fundamental#1
nizej znajduje sie tabelka pokazujace minimalne wartosci dla typow.
  • Odpowiedz