long bg_long, char *bg_char[4],
}•
Данные типа union bigword занимают память, необходимую для размещения наибольшего из своих элементов, и выравниваются в памяти к границе, удовлетворяющей ограничениям по адресации как для типа long, так и для типа char * [4]
Описание переменной объединенного типа Пример
union bigword x,
union bigword *p,
union bigword a[l00],
7.6. Перечисления
Данные перечислимого типа относятся к некоторому ограниченно
му множеству данных
Определение перечислимого типа данных
enum имя _перечислимого типа { список значении
}>
Каждое значение данного перечислимого типа задается идентификатором Пример
enum color {
red green yellow
}•
Описания 47
Описание переменной перечислимого типа Пр и м е р
enum color chair,
enum color suite [40];
Использование переменной перечислимого типа в выражении Пример
char = red,
suite [5] '= yellow
7.7. Переименование типов Формат
typedef старый _тип новый_тип Примеры
typedef long large
/* определяется тип large эквивалентный типу long */
typedef char *stnng
/* определяется тип string эквивалентный типу char * */ Переименование типов используется для введения осмысленных или сокращенных имен типов, что повышает понятность программ, и для улучшения переносимости программ (имена одного типа данных могут различаться на разных ЭВМ)
7.8. Определение локальных переменных
Замечание 1 Постоянные переменные, сохраняемые в некоторой области памяти, инициализируются нулем, если явно не заданы начальные значения Временные переменные, значения которых сохраняются в стеке или регистре, не получают начального значения, если оно не описано явно
Замечание 2 Все описания в блоке должны предшествовать первому оператору Автоматические переменные Пример
mt x, /* х - это автоматическая переменная */ }
48 Описания
Автоматическая переменная является временной, так как ее значение теряется при выходе из блока. Областью определения является блок, в котором эта переменная определена. Переменные, определенные в блоке, имеют приоритет перед переменными, определенными в охватывающих блоках.