![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
||||
|
||||
| Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 53 Всего: 183 |
Я тоже именно на это отвечала -------------------- ... |
|||
|
||||
| asmdzen |
|
|||
![]() ![]() ![]() Профиль Группа: Участник Сообщений: 345 Регистрация: 28.11.2010 Репутация: нет Всего: 5 |
встречал такую проблему при обработке транспортных протоколов, заголовок должен быть очень сжат, получается что-то типа:
проблема состояла именно в том что я брал размер заголовка при помощи sizeof(hdr), который был неправильным. |
|||
|
||||
| volatile |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2107 Регистрация: 7.1.2011 Репутация: 37 Всего: 85 |
Не, не так, чар по-любому будет идти сразу вслед за интом. Если бы там был инт64 вместо чара, тогда да. Например стркутура из 2-ух чаров, при любом выравнивании будет иметь 2 байта длины. Выравнивание начинает играть роль тогда, когда размер типа больше выравнивания, например: struct S { char a; __int64 b; }; при выравнивании 1 - размер стркутуры - 9 байт при 2 - размер стркутуры - 10 байт при 4 - размер стркутуры - 12 байт при 8 - размер стркутуры - 16 байт и дальше при любом выравнивании, размер будет 16 байт. Добавлено через 4 минуты и 50 секунд Упс, сори, тут еще 3 страницы, после того поста, извиняюсь, не заметил. Добавлено через 11 минут и 34 секунды Ну прочитал 3 страницы. вобщем-то этой мысли вроде не было. так что оставляю. |
|||
|
||||
| cupper |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 525 Регистрация: 29.11.2006 Репутация: 1 Всего: 1 |
большая часть трепа, была как раз по этому поводу. http://liveworkspace.org/code/46f54a6f9b75...fd6707aa49d1fb9 и на компиляторе VS оно как раз 16. Экспериментальным путем и путем проб и ошибок вроде бы пришли к мнению что выравнивание везде работает одинаково только для 1, 2, и 4. |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |