Что такое #pragma pack и для чего оно?

Тема в разделе "WASM.BEGINNERS", создана пользователем dyn, 30 дек 2010.

  1. dyn

    dyn New Member

    Публикаций:
    0
    Регистрация:
    30 окт 2009
    Сообщения:
    566
    Привет
    По крупицам в гугле собираю инфу о непонятной мне строке #pragma pack

    вот бывает такая
    /* строка 1 */ #pragma pack(1)
    и вот такая
    /* строка 2 */ #pragma pack(push 1)

    Чаще всего встречаю в заголовочных файлах перед объявлением структуры. Но видел и в С-файлах перед функциями.
    Скажите, что делает данная строка? и какие возможные аргументы в скобках ей можно передать? И в чем разница между строкой 1 и 2 ?
     
  2. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    В msdn забанили?
    http://msdn.microsoft.com/en-us/library/aa273913%28v=vs.60%29.aspx
     
  3. GoldFinch

    GoldFinch New Member

    Публикаций:
    0
    Регистрация:
    29 мар 2008
    Сообщения:
    1.775
    наверное я не прав, но я бы банил за такие вопросы.

    upd:
    наверное просто не стоит ожидать другого в WASM.BEGINNERS %)
     
  4. sysexit

    sysexit New Member

    Публикаций:
    0
    Регистрация:
    27 авг 2010
    Сообщения:
    176
    Эта директива задает выравнивание структуры, к примеру если в структура состоит из 1 элемента типа байт, без всяких деректив структура будет выравнена, и будет занимать 4 байта, а с этой строкой будет выравнивание на указаное в скобках. Суть ясна?
     
  5. Z3N

    Z3N New Member

    Публикаций:
    0
    Регистрация:
    10 фев 2009
    Сообщения:
    812
    На случай, если у кого-нибудь возникнут похожие вопросы и если у него есть VS:
    1. Поставить курсор на интересующее слово.
    2. Нажать F1.
    3. Должен открыться браузер, почитать внимательно.
    4. ?????
    5. PROFIT!!!!!