Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.75
taras atavin
3883 / 1757 / 92
Регистрация: 24.11.2009
Сообщений: 27,566
#1

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

19.06.2012, 18:32. Просмотров 1639. Ответов 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 отключить выравнивание для этой структуры?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.06.2012, 18:32
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Выравнивание структур (C++):

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

Выравнивание структур. Битовые поля - C++
Есть такой код: #pragma pack(push, 1) struct SC { unsigned char a : 1; unsigned char b : 1; unsigned char ...

Блочная сортировка структур (Отсортировать массив структур по фамилии) - C++
Подскажите алгоритм блочной сортировки структур на языке С++. Мне нужно отсортировать массив структур по фамилии.

Массив структур, сохранение начала каждой из структур - C++
Я создал такую структуру class Lancuch { public: char cos; Lancuch * nastepny; }; Lancuch * poczatek=NULL; cin >>...

Динамические массивы структур;Классы. Класс массивы структур;Классы. Класс динамического массива структур. - C++
Здраствуйте.Помогите с практичкой мое задание 4.3. Строка таблицы данных содержит следующую информацию о владельцах авто: ф.и.о....

Как объявить динамический массив структур, и как выглядит обращение к полям структур по указателю? - C++
Ребята подскажите как объявить динамический массив структур, и как выглядит обращение к полям структур по указателю.

2
Jupiter
Каратель
Эксперт С++
6566 / 3987 / 227
Регистрация: 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)
1
taras atavin
3883 / 1757 / 92
Регистрация: 24.11.2009
Сообщений: 27,566
19.06.2012, 18:41  [ТС] #3
Здесь сгодилось и #pragma pack(push,2), так как все члены чётные, а куда сравняется вся структура значения не имеет. Нашёл стандартное объявления в wingdi.h.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.06.2012, 18:41
Привет! Вот еще темы с ответами:

Массив структур в массиве структур - C++
Всем добрый день. Делаю менюшку для управления и терзаю Arduino IDE слегка подвис со следующей задачей. Я хочу определить две...

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

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

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


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

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