eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingPakowanie strukturRe: Pakowanie struktur
  • Data: 2015-12-03 10:31:55
    Temat: Re: Pakowanie struktur
    Od: JDX <j...@o...pl> szukaj wiadomości tego autora
    [ pokaż wszystkie nagłówki ]

    On 2015-12-02 18:21, M.M. wrote:
    > On Wednesday, December 2, 2015 at 5:02:15 PM UTC+1, Borneq wrote:
    >> Jest jeszcze ilość bitów po dwukropku jak :8, :16 czy :32 - kiedy się
    >> stosuje?
    > Generalnie wtedy kiedy chcemy oszczędzać pamięć i przechowywać specyficzne
    > wartości, np. trzy liczby, każda zajmująca max 10 bitów. Bez tej sztuczki
    > potrzeba trzech typów 16-bitowych, czyli razem 48 bitów. Z tą sztuczką 30
    > bitów, które kompilator wyrówna do 32 - mamy oszczędność 16 bitów.
    Jesteś pewien, że wyrównywanie odbywa się na poziomie bitów a nie
    bajtów? Bo zgodnie z tym co napisałeś, poniższy programik na i386
    powinien wyświetlić "2 6 4", a nie wyświetla.

    ---------------------- Tnij tutaj --------------------------------
    #include <stdio.h>

    typedef struct {
    short int a;
    short int b;
    short int c;
    } my_struct;

    typedef struct {
    short int a:10;
    short int b:10;
    short int c:10;
    } my_fancy_struct;

    int main(int argc, char *argv[])
    {
    printf("%d\t%d\t%d\n", sizeof(short int), sizeof(my_struct),
    sizeof(my_fancy_struct));

    return 0;
    }
    ---------------------- Tnij tutaj --------------------------------


    Wynik:
    D:\WorkDir>gcc --version
    gcc (i686-win32-sjlj-rev0, Built by MinGW-W64 project) 5.2.0
    Copyright (C) 2015 Free Software Foundation, Inc.
    This is free software; see the source for copying conditions. There is NO
    warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.


    D:\WorkDir>gcc -O3 -s -o struct_test.exe struct_test.c

    D:\WorkDir>struct_test
    2 6 6

    D:\WorkDir>


Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: