Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > Выравнивание структура по байтово


Автор: Delphist 19.5.2004, 08:44
Как задать условию компилятору, чтобы выравнивание структуры шло по-байтово

Автор: AndyY 19.5.2004, 09:38
#pragma pack( push )
сохраним состояние прагмы

#pragma pack (1)
тут пишем структуры с алигментом 1

#pragma pack (pop)
все вернем на место

или через настройки компилера (в MSVC60 Project/Settings/C++/Code generation)

Автор: DenDen 19.5.2004, 09:40
Зачем надо?
1) можно сделат в ручную
примерно так.
#define aling(bytes) char a[((bytes>>3+1)<<3)-bytes]
struct _some_struct
{
data some_data;
aling(sizeof(some_data));
};
в некоторых компиляторах можно задать просто
#define aling(bytes) char [((bytes>>3+1)<<3)-bytes]

Автор: mr.DUDA 19.5.2004, 09:43
VC++:
Цитата
#pragma pack(push, 1)

// объявление структуры

#pragma pack(pop)

Добавлено @ 09:44
Пока написал ответ - уже двое постарались biggrin.gif

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)