Массивы структур. Структурный тип "struct ID_структуры" как правило используют для декларации массивов, элементами которых являются структурные переменные
Структурный тип "struct ID_структуры" как правило используют для декларации массивов, элементами которых являются структурные переменные. Это позволяет создавать программы, оперирующие с "примитивными базами данных". Например:
struct person spisok[100]; // spisok - массив структур
Или можно записать так:
struct person {
char fio[40];
int day, month, year;
} spisok[100];
В данном случае обращение к полю, например, day i-той записи может быть выполнено одним из следующих способов:
spisok[i].day=22; *(spisok+i).day=22; (spisok+i)->day=22;
Размещение структурных переменных в памяти
При анализе размеров структурных переменных иногда число байт, выделенных компилятором под структурную переменную оказывается больше, чем сумма байт ее полей. Это связано с тем, что компилятор выделяет участок ОП для структурных переменных с учетом выравнивания граней, добавляя между полями пустые байты по следующим правилам:
- структурные переменные, являющиеся элементами массива начинаются на границе слова, т.е. с четного адреса;
- любое поле структурной переменной начинается на границе слова, т.е. с четного адреса и имеет четное смещение по отношению к началу переменной;
- при необходимости в конец переменной добавляется пустой байт, чтобы общее число байтов было четное.
Дата добавления: 2015-09-11; просмотров: 620;