Форум программистов, компьютерный форум, киберфорум
Наши страницы

Вопрос про Спецификаторы доступа Public и Private - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Строки, Функции http://www.cyberforum.ru/cpp-beginners/thread374047.html
Всем доброго времени суток. Нужна помощь в решении. Строки 1. Символьная строка заканчивается восклицательным знаком (!). Слова в ней отделены друг от друга точкой с запятой ( ; ). Найти те...
C++ тупняк с virtual :) Здравствуйте. пытаюсь прикрутить икслючения к своему "модулю", и натыкаюсь на ругань компилятора: error: expected unqualified-id before ‘virtual’ А дело делается так: class cfg_exception:... http://www.cyberforum.ru/cpp-beginners/thread374039.html
C++ Метод скальзящего среднего
дан двумерный массив (300 строк и 3 столбца: ФИО, порядковый номер получки, величина выплат) - значения зарлаты вариируются винтервале от 1000 до 25000 равновероятно. Написать программу,...
dxflib Чтение DXF файлов C++
Есть задача считать DXF файл. Остановился на dxflib. Все считывается нормально, но в некоторых файлах появляется посторонняя фигура, указывающая на ноль. К примеру в A9CAD маленький треугольник....
C++ Как ввести двумерный массив с клавиатуры? Его размерность [n][m] нужно задавать с клавиатуры. http://www.cyberforum.ru/cpp-beginners/thread373998.html
Привет всем. Как ввести двумерный массив с клавиатуры? Его размерность нужно задавать с клавиатуры.
C++ Вычислить и вывести на экран в виде таблицы значения функции помогите сделать пару задач плз) sinx/x=\sum({-1}^{n}*{x}^{2n})/(2n+1)! это 1-ая задача вот 2-ая вычислить и вывести на экран в виде таблицы значения функции F на интервале от Xнач до Xкон с... подробнее

Показать сообщение отдельно
Bers
Заблокирован
29.10.2011, 20:34
Цитата Сообщение от Chelioss Посмотреть сообщение
Выводит 12 и 12.
Странно. Должно быть в первом случае точно 4 + 4 + 1
Вот более удачный пример:

C++
1
2
3
4
5
6
7
struct test0  {  int i; int n;  char c;           };
        struct test1  {  int i; int n;  char c;  char u;  };
        struct test2 { char c; int i; char u; int n;      };
 
        std::cout<< sizeof(test0)<<std::endl; //12
        std::cout<< sizeof(test1)<<std::endl; //12
        std::cout<< sizeof(test2)<<std::endl; //16
фокус в том, что структур-муктур выравнивается в памяти. Её размер всегда кратен 4.
Ну это теоретически. На практике зависит от компилятора, и арх процессора. Если я ничего не путаю. Тут нужно смотреть в сторону "выравнивание данных в памяти"

Главное что нужно понять - это что от порядка в котором объявляются данные-члены, зависит размер структуры. И что нужно стремится чары объявлять с чарами, инты с интами.
Тогда размер структуры будит минимальным без упаковки её в памяти (можно делать ещё запакованные структуры, но это потеря производительности, и нафег надо ради 1-2 байт?)
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.