Каждый
Пример объявления переменной
enum week {SUB = 0, /* константе SUB присвоено значение 0 */
VOS = 0, /* константе VOS присвоено значение 0 */
POND, /* константе POND присвоено значение 1 */
VTOR, /* константе VTOR присвоено значение 2 */
SRED, /* константе SRED присвоено значение 3 */
HETV, /* константе HETV присвоено значение 4 */
PJAT /* константе PJAT присвоено значение 5 */
} rab ned;
— объявляемая переменная может содержать повторяющиеся значения констант;
— идентификаторы в списке констант должны быть отличны от всех других идентификаторов в той же области видимости, включая имена обычных переменных и идентификаторы из других списков констант;
— Имена типов перечислений должны быть отличны от других имен типов перечислений, структур и объединений в этой же области видимости;
— значение может следовать за последним элементом списка констант перечисления.
Во втором формате для объявления переменной перечислимого типа используется готовый тип переменной, уже объявленный ранее. Например: enum week rabl;
К переменной перечислимого типа можно обращаться при помощи указателей. При этом необходимо заранее определить тип переменной, на которую будет ссылаться указатель. Это может быть сделано, как описывалось выше или при помощи оператора typedef. Например:
typedef enum {SUB = 0, /* константе SUB присвоено значение 0 */
VOS = 0, /* константе VOS присвоено значение 0 */
POND, /* константе POND присвоено значение 1 */
VTOR, /* константе VTOR присвоено значение 2 */
SRED, /* константе SRED присвоено значение 3 */
HETV, /* константе HETV присвоено значение 4 */
PJAT /* константе PJAT присвоено значение 5 */
} week;
Этот оператор не объявляет переменную, а только определяет тип переменной, отличающийся от стандартного. В дальнейшем этот тип может быть использован для объявления переменных и указателей на переменные.
При объявлении переменной-указателя необходимо определить тип объекта данных, адрес которых будет содержать эта переменная, и идентификатор указателя с предшествующей звездочкой (или группой звездочек). Формат объявления указателя:
Спецификатор типа [Модификатор] '*' Описатель.
Спецификатор типа задает тип объекта и может быть любого основного типа, структуры или объединения (об этих типах данных будет сказано ниже). Примеры объявления указателей: