Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.05.2018, 10:59   #11
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

И опять не правильно. Не максимальному полю и не совсем кратен. И значение выравнивания можно менять, может поставить в 1 и получить свои 7 байт ( вместо 8).
p51x вне форума Ответить с цитированием
Старый 30.05.2018, 13:54   #12
alexzk
Форумчанин
 
Регистрация: 12.04.2017
Сообщений: 889
По умолчанию

Цитата:
Сообщение от Yudin Посмотреть сообщение
Попереставлял, попроверял... Моя жизнь никогда не станет прежней, я свято верил, что размер равен произведению, а оказывается компилятор просто добавляет к сумме значения, чтобы результат был кратен максимальному полю...
Не верно. Компилятор добавляет значения, чтобы суммарная длина была кратна чему-то.
Но можно совсем выключить выравнивание для конкретной структуры, что нужно для записи памяти в файл (или передаче по сети) 1 к 1.

http://en.cppreference.com/w/cpp/lan...ject#Alignment

В C++ 11 там новые операторы даже добавлены, смотреть выравнивания.

Последний раз редактировалось alexzk; 30.05.2018 в 14:06.
alexzk вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите с вопросами alhon Помощь студентам 2 14.01.2016 22:06
Помогите с вопросами пожалуйста Silensir111 Помощь студентам 0 20.11.2015 19:39
Помогите с вопросами R@MZ[E]$ Помощь студентам 6 21.05.2009 17:51
Помогите с вопросами... R@MZ[E]$ Паскаль, Turbo Pascal, PascalABC.NET 5 21.05.2009 09:40