Составители:
Рубрика:
Доступ к полям структуры выполняется с помощью операций выбора . (точка)
при обращении к полю через имя структуры и -> при обращении через указатель, на-
пример:
Man men, mas[200], *ps;
men.Surname = "Иванов";
mas[8].code = 119;
ps->money = 9500.55;
Если элементом структуры является другая структура, то доступ к ее элементам
выполняется через две операции выбора:
struct A {int a; double х;};
struct В {A a; double х;} х[2];
х[0].а.а = 1;
х[1].х = 0.1;
Как
видно из примера, поля разных структур могут иметь одинаковые имена, по-
скольку у них разная область видимости. Более того, можно объявлять в одной области
видимости структуру и другой объект (например, переменную или массив) с одинаковыми
именами, если при определении структурной переменной использовать слово struct.
Память под элементы структуры выделяется последовательно, элемент за элемен-
том, слева направо, от младших к старшим адресам. В примере:
struct mystruct
{
int i;
char str[21];
double d;
} s;
память выделяется следующим образом: 2 байта на целое, 21 байт на строку, 8 байт на
double. Формат расположения в памяти определяется опцией "выравнивание слов". Если
эта опция выключена (по умолчанию) - выделяется непрерывный участок памяти в 31
байт. Если эта опция включена, то выполняются следующие правила:
1. Структура начинается с границы слова.
2. Несимвольные элементы размещаются с четным смещением относительно начала
структуры.
3. Если необходимо, то в конце добавляется еще один байт, так чтобы структура занима-
ла четное число байт.
Элементы структуры можно определить как знаковые или беззнаковые
битовые
поля шириной от 1 до 16 бит. Битовые поля - это особый вид полей структуры. Они ис-
пользуются для плотной упаковки данных, например, флажков типа «да/нет». Общая
форма описания для битового поля следующая:
тип идентификатор: ширина,
где
тип - char, unsigned char, int или unsigned int;
ширина - целое от 0 до 16.
Если идентификатор поля пропущен, то указанное число бит размещается в памя-
ти, но не доступно. Например [7]:
56
Доступ к полям структуры выполняется с помощью операций выбора . (точка)
при обращении к полю через имя структуры и -> при обращении через указатель, на-
пример:
Man men, mas[200], *ps;
men.Surname = "Иванов";
mas[8].code = 119;
ps->money = 9500.55;
Если элементом структуры является другая структура, то доступ к ее элементам
выполняется через две операции выбора:
struct A {int a; double х;};
struct В {A a; double х;} х[2];
х[0].а.а = 1;
х[1].х = 0.1;
Как видно из примера, поля разных структур могут иметь одинаковые имена, по-
скольку у них разная область видимости. Более того, можно объявлять в одной области
видимости структуру и другой объект (например, переменную или массив) с одинаковыми
именами, если при определении структурной переменной использовать слово struct.
Память под элементы структуры выделяется последовательно, элемент за элемен-
том, слева направо, от младших к старшим адресам. В примере:
struct mystruct
{
int i;
char str[21];
double d;
} s;
память выделяется следующим образом: 2 байта на целое, 21 байт на строку, 8 байт на
double. Формат расположения в памяти определяется опцией "выравнивание слов". Если
эта опция выключена (по умолчанию) - выделяется непрерывный участок памяти в 31
байт. Если эта опция включена, то выполняются следующие правила:
1. Структура начинается с границы слова.
2. Несимвольные элементы размещаются с четным смещением относительно начала
структуры.
3. Если необходимо, то в конце добавляется еще один байт, так чтобы структура занима-
ла четное число байт.
Элементы структуры можно определить как знаковые или беззнаковые битовые
поля шириной от 1 до 16 бит. Битовые поля - это особый вид полей структуры. Они ис-
пользуются для плотной упаковки данных, например, флажков типа «да/нет». Общая
форма описания для битового поля следующая:
тип идентификатор: ширина,
где
тип - char, unsigned char, int или unsigned int;
ширина - целое от 0 до 16.
Если идентификатор поля пропущен, то указанное число бит размещается в памя-
ти, но не доступно. Например [7]:
56
Страницы
- « первая
- ‹ предыдущая
- …
- 54
- 55
- 56
- 57
- 58
- …
- следующая ›
- последняя »
