См. также:
для Microsoft Visual C:
http://msdn.microsoft.com/en-us/library/2e70t5y1%28v=vs. 80% 29.aspx
и GCC утверждают совместимость с компилятором Microsoft .:
http://gcc.gnu.org/onlinedocs/gcc/Structure_002dPacking -Pragmas.html
В дополнение к предыдущим ответам, обратите внимание, что независимо от упаковки в C ++ нет гарантий-распоряжений-членов. Компиляторы могут (и, конечно же, делать) добавлять в структуру элементов виртуальной таблицы и базовых структур. Даже существование виртуальной таблицы не обеспечивается стандартом (реализация виртуального механизма не указана), и поэтому можно сделать вывод, что такая гарантия просто невозможна.
Я вполне уверен, что порядок членов является гарантировано в C, но я не стал бы рассчитывать на это, когда писал кросс-платформенную или кросс-компиляторную программу.