URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 5546
[ Назад ]

Исходное сообщение
"struct:  откуда лишние байты?"

Отправлено echo , 04-Июл-06 17:33 
#include <iostream>

struct test {
      u_int64_t   a;
      int16_t     b;
};

int
main()
{
   cout << sizeof (test) << endl;
}

ВОПРОС:
когда я комментирую test::a вывод = 2.
когда комментирую  test::b вывод = 8

а когда оба в структуре вывод = 12!
она что, какое-то выравнивание делает?!
наверняка есть чаво по этой теме, кинте ссылочку, plz  


Содержание

Сообщения в этом обсуждении
"struct:  откуда лишние байты?"
Отправлено echo , 04-Июл-06 17:34 
т.е. какую опцию где надо вставить, чтобы компилятор не оптимизировал по-своему?

"struct:  откуда лишние байты?"
Отправлено michelnok , 04-Июл-06 20:37 
>т.е. какую опцию где надо вставить, чтобы компилятор не оптимизировал по-своему?

struct __attribute__((packed)) test {
      u_int64_t   a;
      int16_t     b;
};


"нашел ответ, может кому пригодится"
Отправлено echo , 04-Июл-06 17:40 
#include <iostream>

#pragma pack (1)

struct test {
      u_int64_t   a;
      int16_t     b;

};

#pragma pack (4)