| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Флейм > MS VC++ 6.0 |
| Автор: GrayCardinal 3.5.2005, 15:23 |
| struct locinfo_t { WORD a; WORD b; unsigned int c; char d; } locinfo_t; Угадайте с трех раз что выдаст sizeof (locinfo_t) |
| Автор: Дрон 3.5.2005, 15:31 |
| А в чём юмор-то? Зависит от выравнивания и ещё от того 32 или 16-битный компилятор. Но не меньше 7-байт это точно |
| Автор: GrayCardinal 3.5.2005, 15:42 |
| Юмор в том, что это у меня заголовок в файле. Фиксированного размера. 9 байт. Это, допустим, для него структура, и чё ? шыш, а не прочитать. Добавлено @ 15:42 ЗЫ. а как выравнивание ставить/убирать ?! |
| Автор: Дрон 3.5.2005, 15:56 |
| Ну это не для флейма вопрос #pragma pack(n) где n - выравнивание |
| Автор: GrayCardinal 3.5.2005, 16:14 |
| повробую, однако... но меня эта, извиняюсь жпа, просто убила. Я вроде б и не пил, а мне пишет шо 12 байт И какое там выравнивание, если у меня 12 получилось ? Добавлено @ 16:15 ЗЫ int - 4 байта. WORD - 2 char - 1 ПРОВЕРЯЛ через тот-же sizeof |
| Автор: dm9 3.5.2005, 16:57 |
| 2+2+4+1=9 9 округляем до n*4, получаем 12. |
| Автор: GrayCardinal 4.5.2005, 15:33 |
| dm9 "ОКРУГЛЯЕМ" ?! Вот точно жпа. Никогда бы не догодался, однако. Я - то с дуру решил что каждая переменная выравнивается ЗЫ Попробовал, работает... м-дя. Спасибо Дрон'у, а то я извращался с char[4] вместо uint |
| Автор: simanyay 4.5.2005, 15:59 |
| А что это ты начал под винду писать? Тоже ядро хачишь? |
| Автор: GrayCardinal 5.5.2005, 07:03 |
| simanyay PS Ядро говоришь ... |