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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 26.02.2011, 15:18   #1
Farrel
Форумчанин
 
Аватар для Farrel
 
Регистрация: 21.04.2010
Сообщений: 144
По умолчанию Размер поля бит?

Следующий код я что-то не совсем понимаю:
Код:
struct bitfield
	{
		unsigned i1:1;
		unsigned i2:1;
		unsigned i3:1;
		unsigned i4:1;
		unsigned i5:1;
		unsigned i6:1;
		unsigned i7:1;
		unsigned i8:1;
	};

void main()
{
   bitfield b;
   cout<<sizeof(b)<<endl;
}
На выходе печатается 4
Откуда ещё 3 байта?

ps вижла 10, система - семёрка
может это их закидоны?
Farrel вне форума Ответить с цитированием
Старый 26.02.2011, 15:23   #2
Obey-Kun
Линуксоид
Участник клуба
 
Аватар для Obey-Kun
 
Регистрация: 31.07.2009
Сообщений: 1,403
По умолчанию

Размер объекта некоторого класса != сумме размеров всех полей этого класса. Лепту вносит как минимум выравнивание.

http://habrahabr.ru/blogs/cpp/90580/
Я схожу с ума или это глючит реальность?
Jabber ID: obey@obey.su
Obey-Kun вне форума Ответить с цитированием
Старый 26.02.2011, 22:49   #3
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

Да нету там выравнивание. Написано же: сделать битовые поля на основе unsigned int. А теперь вопрос: сколько занимает unsigned int?
p51x вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Размер поля адреса veter48 Помощь студентам 1 20.10.2010 08:46
Размер поля. Electron$ Общие вопросы Delphi 1 15.09.2010 08:37
Размер ключевого поля - ? Evgenii БД в Delphi 10 03.07.2009 11:28
Размер поля БД kayman Общие вопросы Delphi 1 14.10.2007 21:43