Такой доступ осуществляется с помощью специального обозначения для выделенного компонента, имеющего следующий вид:
s.cгде s является именем структуры или значением структуры с компонентом c. s может быть выражением, дающим в результате значение структуры. Например, s может быть вызовом функции со структурой в качестве ее значения. К компонентам определенной выше структуры date1 можно обратиться, указав их обозначения:
date1.yeardate1.monthdate1.dayПоля битов в структурах
Поле битов - это элемент структуры, определенный как некоторое число бит, обычно меньшее, чем число бит в целом числе. Поля битов предназначены для экономного размещения в памяти данных небольшого диапазона.
Пример:
struct bfeg { unsigned int bf_flg1: 10; unsigned int bf_flg2: 6;};Данная структура описывает 10-битовое поле, которое для вычислений преобразуется в значение типа unsigned int, и 6-битовое поле, которое обрабатывается как значение типа unsigned int.
Объединения
Объединение описывает переменную, которая может иметь любой тип из некоторого множества типов.
|
|
Определение объединенного типа данных аналогично определению структурного типа данных:
union имя_объединения { Описания_элементов};Пример:
union bigword { long bg_long; char *bg_char [4];};Данные типа union bigword занимают память, необходимую для размещения наибольшего из своих элементов, и выравниваются в памяти к границе, удовлетворяющей ограничениям по адресации как для типа long, так и для типа char *[4].
Описание переменной объединенного типа:
Пример:
union bigword x;union bigword *p;union bigword a[100];Перечисления
Данные перечислимого типа относятся к некоторому ограниченному множеству данных.
Определение перечислимого типа данных:
enum имя_перечислимого_типа { Список_значений};Каждое значение данного перечислимого типа задается идентификатором.
Пример:
enum color { red, green, yellow};Описание переменной перечислимого типа:
enum color chair;enum color suite [40];Использование переменной перечислимого типа в выражении.
Пример:
chair = red;suite[5]!= yellow;