|
|
||
7. Размер структур |
||
Как правило, размер структуры — это сумма размеров всех её членов, но не всегда! Например, рассмотрим структуру Employee. На большинстве платформ тип short занимает 2 байта, тип int — 4 байта, а тип double — 8 байт. Следовательно, ожидается, что Employee будет занимать 2 + 4 + 8 = 14 байт. Чтобы узнать точный размер Employee, мы можем воспользоваться оператором sizeof: #include <iostream>
struct Employee
{
short id;
int age;
double salary;
};
int main()
{
std::cout << "The size of Employee is " << sizeof(Employee) << "\n";
return 0;
}
Результат выполнения программы: The size of Employee is 16 Оказывается, мы можем сказать только, что размер структуры будет, по крайней мере, не меньше суммы размеров всех её членов. Но он может быть и больше! По соображениям производительности компилятор иногда может добавлять «пробелы/промежутки» в структуры. В структуре Employee компилятор неявно добавил 2 байта после члена id, увеличивая размер структуры до 16 байтов вместо 14. |
||
|
||
7 |