| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Для новичков > размер типов данных |
| Автор: susanin 8.3.2008, 00:24 |
| как определяется размер таких типов данных как структура и класс? |
| Автор: Daevaorn 8.3.2008, 00:25 | ||
или вопрос не про то? |
| Автор: susanin 8.3.2008, 00:28 |
| немного не то.... хотелось знать из чего состоит размер??? что он из себя представляет? размер максимального элемента или же размер суммы всех элементов структуры/класс |
| Автор: MuForum 8.3.2008, 00:29 | ||
|
| Автор: susanin 8.3.2008, 00:39 | ||||
| хотелось знать из чего состоит размер??? что он из себя представляет? размер максимального элемента или же размер суммы всех элементов структуры/класс почему две структуры с одинаковыми данными имеют разный размер?? пример
выдает размер 16, а структура с теми же переменными, но расположенными в другом порядке,
уже дает в результате 24.... не понимаю! |
| Автор: MuForum 8.3.2008, 01:09 | ||
# 5, susanin - Используй то, что я тебе написал, и будет строгий контроль в указанном порядке!
# Result:
sizeof(TEST2) = '13' byte. |
| Автор: nickless 8.3.2008, 01:49 | ||||||||
| susanin, размер - это сумма размеров элементов + выравнивание. Выравнивание (alignment) нужно для повышения скорости чтения/записи данных в памяти. В твоих примерах выравнивание похоже = 8, т.е. в памяти эти структуры выглядят примерно так ([ ] = 1 байт):
Как оно действительно расположено в памяти зависит от компайлера. |
| Автор: Fazil6 8.3.2008, 09:36 |
а указатель на таблицу виртуальных функций? |
| Автор: SABROG 8.3.2008, 09:43 |
| pragma это конечно хорошо, но если речь зайдет о компиляторе gcc ? Что ж это получается sizeof полностью бесполезен ? |
| Автор: susanin 8.3.2008, 21:02 |
| со структурой понятно, а что насчет класса? как в нем определяется? |
| Автор: Daevaorn 8.3.2008, 21:09 | ||
Абсолютно так же. |
| Автор: susanin 8.3.2008, 21:36 |
| всем спасибо! за помощь! теперь буду знать! |