К Т П           План занятия                                                              1                                           Страницы  | 1 | | 2 | | 3 | | 4 | | 5 | | 6 | | 7 | | 8 | | 9 |

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