Простые объявления переменных
Объявление обычной переменной, простейшей формы прямого декларатора, указывает имя и тип переменной. Оно также указывает класс хранения и тип данных переменной.
Классы хранения или типы (или и то, и другое) требуются в объявлениях переменных. Нетипизированные переменные (например, var;
) создают предупреждения.
Синтаксис
declarator
:
pointer
необ. direct-declarator
direct-declarator
:
identifier
identifier
:
nondigit
identifier
nondigit
identifier
digit
В случае арифметического типа, типа структуры, типа объединения, типа перечисления, типа void и типов, представляемых именами typedef
, простые деклараторы можно использовать в объявлении, поскольку описатель предоставляет всю вводимую информацию. Для типов указателя, массива и функций требуются более сложные деклараторы.
Список идентификаторов, разделенных запятыми (,
) можно использовать для указания нескольких переменных в одном объявлении. Все переменные, определенные в объявлении, имеют один и тот же базовый тип. Например:
int x, y; /* Declares two simple variables of type int */
int const z = 1; /* Declares a constant value of type int */
Переменные x
и y
могут содержать любое значение в наборе, определенном типом int
для конкретной реализации. Простой объект z
инициализируется значением 1 и не изменяется.
Если бы объявление z
было выполнено для неинициализированной статической переменной или в области видимости файла, было бы получено начальное значение 0, которое было бы неизменяемым.
unsigned long reply, flag; /* Declares two variables
named reply and flag */
В этом примере обе переменные reply
и flag
имеют тип unsigned long
и содержат целочисленные значения без знака.