![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| Lazin |
|
||||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: 41 Всего: 154 |
есть такой шаблон
и такой-вот тип:
непонятно мне только одно, почему структура
имеет размер 6 байт и как компилятору Visual Studio 8 объяснить что она должна иметь размер 5 байт? Добавлено через 10 минут и 44 секунды Видимо компилятор отводит 1 байт под первую переменную QC(типа NullType), но почему тогда под Time2 не отводит? |
||||||
|
|||||||
| Daevaorn |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2155 Регистрация: 29.11.2004 Где: Москва Репутация: 51 Всего: 70 |
выравнивание?
зачем.
можно выставить у компилятора нужное выравнивание. |
||||
|
|||||
| Cycle |
|
||||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 59 Регистрация: 1.12.2007 Репутация: 3 Всего: 3 |
см. Thinking in C++, Volume 1, 2nd Edition Completed January 13, 2000 Bruce Eckel, President, MindView, Inc. Минимальный размер любого типа 1 байт. Тогда можно гарантировать, что каждый объект будет иметь уникальный адрес. Это ты можешь просмотреть в описании реализации любого компилятора, например: http://www.digitalmars.com/ctg/CPP-Languag...ementation.html
Вот у тебя и получилось, что в структуре два типа по два байта и два типа по байту. Всего 6 байт P.S. Не могу понять твое стремление к минимизации (такой фанатичной) структуры. Если тебе это нужно для сериализации, то объяви в структуре такой метод:
Только перегрузи правильно оператор << и тебе будет счатье! Это сообщение отредактировал(а) Cycle - 5.12.2007, 18:50 |
||||||
|
|||||||
| Lazin |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: 41 Всего: 154 |
Daevaorn, выравнивание - 1 байт, на самом деле все так как написал Cycle, компилятор выделяет под структуру NullType - 1 байт
возвращает 6, в предидущем посте я ошибся, написав что мне нужно 5 байт, на самом деле - 4)) а использовать хотел в конструкции
|
||||
|
|||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |