Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.75
taras atavin
Ушёл с форума.
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
#1

Выравнивание структур - C++

19.06.2012, 18:32. Просмотров 1545. Ответов 2
Метки нет (Все метки)

C++
1
2
3
4
5
6
7
8
typedef struct _WinBMPFileHeader
{
 WORD                      FileType;
 DWORD                     FileSize;
 WORD                      Reserved1;
 WORD                      Reserved2;
 DWORD                     OffBits;
} WINBITMAPFILEHEADER;
sizeof =16, а на самом деле 14, лишние 2 байта воткнулись между FileType и FileSize из-за выравнивания на границу DWORD. Это файловый заголовок и выравнивание здесь не желательно. Как на codeblocks с MinGW отключить выравнивание для этой структуры?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.06.2012, 18:32     Выравнивание структур
Посмотрите здесь:

Выравнивание структур - C++
Подскажите пожалуйста, как в Си++ задать структуру/класс/тип данных, чтобы она/её поля были выровнены на одределённую границу в памяти,...

Выравнивание - C++
Почему не происходит выравнивание текста по правому края? int main() { cout.setf(ios::right); cout << "Right"; return 0;...

Выравнивание - C++
Насколько я понимаю разрядность системы определяет размер машинного слова. Допустим, я использую Win7 x32, получается, что за 1 такт...

Выравнивание матрицы - C++
Доброго времени суток. Хотелось бы узнать, как сделать чтобы из этого: http://joxi.ru/fA9RUtg5CbDUc_0TDm0 получилось это ...

Выравнивание вывода - C++
Как отредактировать вывод, чтобы выводило примерно как на скриншоте ? #include <iostream> #include <fstream> #include <io.h> ...

SSE2, выравнивание и new - C++
Потихонечку пишу свою длинную арифметку. И вот на этапе оптимизации мне нужно использовать команды SSE2. Но многие из них требуют...

Выравнивание данных - C++
Итак, как всем известно, обычно тип double занимает 8 байт. Тип char занимает 1 байт (char - 9 байт). Структура вида: struct A { ...

выравнивание по ширине - C++
составить программу, создающую другой текстовый файл, в котором строки из первого файла выровнены по ширине. Выравнивание производить за...

Выравнивание текста - C++
Как мне выравнить текст в этом коде, как показано на рисунке ? cout<<"Едем...

Выравнивание столбцов - C++
Подскажите, пожалуйста, как вывести ответы в ровные столбцы. Получается только так, как на скрине. Код выглядит так: ... ...

Выравнивание строки - C++
Помогите пожалуйста написать функцию, которая выравнивает строку по левому краю до заданной длинны.

Не получается выравнивание - C++
Здравствуйте, форумчане! Я вот уже второй день не могу выполнить такую задачу (см. прикрепленный файл). Мой код: #include <stdio.h> ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Jupiter
Каратель
Эксперт С++
6553 / 3973 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
19.06.2012, 18:40     Выравнивание структур #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
#pragma pack(push, 2)
 
typedef struct _WinBMPFileHeader
{
   WORD                      FileType;
   WORD                      Reserved1;
   WORD                      Reserved2;
   DWORD                     FileSize;
   DWORD                     OffBits;
} WINBITMAPFILEHEADER;
 
#pragma pack(pop, 2)
taras atavin
Ушёл с форума.
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
19.06.2012, 18:41  [ТС]     Выравнивание структур #3
Здесь сгодилось и #pragma pack(push,2), так как все члены чётные, а куда сравняется вся структура значения не имеет. Нашёл стандартное объявления в wingdi.h.
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru