Как подсчитать размер структуры до компиляции?
-
- Маппер
- Сообщения: 1748
- Зарегистрирован: 18.02.2008
- Откуда: <удалено>
Собственно такой возник вопрос. Есть структура с множеством членов и нужно определить её размер средствами VS2008. sizeof и вывод через консоль не предлагать. Ах да язык С++
Завязываю с играми
Мну в Xbox LIVE




Ну я могу сказать только то что размер структуры равен сумме размеров ее элементов если конечно нет взаимоисключающих полей тогда не знаю
P.S
Размер union-ов не считается если что
P.S
Код: Выделить всё
struct PERSON { //
unsigned int age; // 4
long ss; // 4
float weight; //4
char name[28]; //28
} family_member;
//Итого 40 что и требовалось доказать
printf("%d",sizeof(family_member)); //Выводит те же 40

- $t@t!c_V()1D
- Разработчик
- Сообщения: 2639
- Зарегистрирован: 06.12.2007
- Благодарил (а): 10 раз
- Поблагодарили: 29 раз
а чем sizeof не угодил?
Another guy on them internets
Уважайте команду CSMania.RU - задавайте вопросы правильно!
Уважайте команду CSMania.RU - задавайте вопросы правильно!
-
- Маппер
- Сообщения: 1748
- Зарегистрирован: 18.02.2008
- Откуда: <удалено>
Morfin
Так проблема в том что много элементов (хрен подсчитаешь :) ) в структуре алсо для ускорения компилятор делает размер кратным 2 или 4.
$t@t!c_V()1D
Это я смотрю сурсы одной либы. Нужен просто размер для вызова функции через P/Invoke (заполню нужную структуру массивом shortint'ов).
Так проблема в том что много элементов (хрен подсчитаешь :) ) в структуре алсо для ускорения компилятор делает размер кратным 2 или 4.
$t@t!c_V()1D
Это я смотрю сурсы одной либы. Нужен просто размер для вызова функции через P/Invoke (заполню нужную структуру массивом shortint'ов).
Завязываю с играми
Мну в Xbox LIVE




- $t@t!c_V()1D
- Разработчик
- Сообщения: 2639
- Зарегистрирован: 06.12.2007
- Благодарил (а): 10 раз
- Поблагодарили: 29 раз
-
- Маппер
- Сообщения: 1748
- Зарегистрирован: 18.02.2008
- Откуда: <удалено>
Все спасибо всем проблему решил. Тему можно закрывать
Завязываю с играми
Мну в Xbox LIVE



