sizeof полей структуры на срр

Тема в разделе "WASM.BEGINNERS", создана пользователем shi, 18 янв 2007.

  1. shi

    shi New Member

    Публикаций:
    0
    Регистрация:
    27 июл 2006
    Сообщения:
    41
    Всем привет

    Тут какие-то глюки с размером записи на срр (гну)
    Код (Text):
    1. struct { short; short; char; short; char; } имеет размер 10 байт (вместо положенных, вроде бы, восьми)
    2. struct { char; char; char} - 3 байта
    Я так понял, что поля выравниваются по размеру наибольшего типа, участвующего в структуре. Подскажите, пожалуйста, как этого можно избежать?
     
  2. n0name

    n0name New Member

    Публикаций:
    0
    Регистрация:
    5 июн 2004
    Сообщения:
    4.336
    Адрес:
    Russia
    Поиск по форуму.
     
  3. nobodyzzz

    nobodyzzz New Member

    Публикаций:
    0
    Регистрация:
    13 июл 2005
    Сообщения:
    475
    http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vccore98/html/_predir_pack.asp
     
  4. Quantum

    Quantum Паладин дзена

    Публикаций:
    0
    Регистрация:
    6 янв 2003
    Сообщения:
    3.143
    Адрес:
    Ukraine
    shi
    Можно просто сгруппировать их иначе:
    sizeof(struct { short; short; short; char; char; }) == 8 байт
     
  5. IceStudent

    IceStudent Active Member

    Публикаций:
    0
    Регистрация:
    2 окт 2003
    Сообщения:
    4.300
    Адрес:
    Ukraine
    #pragma pack(push,1)