Общие сведения о объявлений
"Объявление" определяет интерпретация и атрибуты набора идентификаторов.Объявление, также будет хранение быть зарезервированным для объекта или функции именованных идентификатором вызывается "определение". C# для объявления переменных, функций и типов имеют следующий синтаксис:
Синтаксис
declaration:
init-декларатор-список объявление-описателейOpt**;**описатели объявлений.
хранени-класс-описатель атрибут-seq Optописатели объявлений Opt
Комбинация символов "/* " attribute-seq Opt специфичные (Майкрософт) *
объявление-описатели тип-описателя Opt
объявление-описатели тип-квалификатора Opt
init-декларатор-список.
init-деклараторinit-декларатор-список " init-декларатор
init-декларатор.
ДеклараторДекларатор = инициализатор
![]() |
---|
Этот синтаксис declaration не повторит в следующих разделах.Синтаксис в следующих подразделах обычно начинается с declarator нетерминально. |
Объявления в init-декларатор-список contains, называнными идентификаторы. init сокращенное обозначение инициализатора.init-декларатор-список последовательность деклараторов с разделителями-запятыми, каждый из которых может иметь дополнительные сведения о типе или инициализатора или оба.declarator содержит идентификаторы, если таковые имеются, объявляемо.описатели объявлений нетерминально состоит из последовательности описателей типа и хранени-класса, отображающие связи, длительность хранения и по крайней мере часть типов сущностей, деклараторы метками.Поэтому объявления состоят из описателей хранени-класса некоторых комбинаций введите описатели, квалификаторы типов, деклараторы и инициализаторы.
Объявления могут содержать один или несколько необязательных атрибутов, перечисленных в пределах attribute-seq; seq сокращенное обозначение последовательности.Эти атрибуты Майкрософт-специфического выполняют разнообразные функции, которые подробно обсуждаются в этой книге.Список этих атрибутов см. в разделе Сводка синтаксиса языка C.
В общей форме объявления переменной тип-описатель задает тип данных переменной. Тип-описатель сочетание может быть, например, когда тип изменения by Const OR volatile.declarator содержит имя переменной, возможно, измененное для объявления массива или тип указателя.Например:
int const *fp;
объявляет переменную fp указатель на немодифицируемому (какConst) int значения.Можно определить более одной переменной в объявлении с помощью нескольких деклараторов, разделенных запятыми.
Объявление должно быть по крайней мере один декларатор или его описатель типа должен объявлять тегов тег структуры, объединения или членов перечисления.Деклараторы предоставляют любое оставшийся сведения об идентификаторе.Декларатор идентификатор, который можно изменить с брекетами ([]звездочка ()*****или круглые скобки () () ) объявлять массивом, указателем или тип функции.При объявлении простые переменные (например символ целое число, а элементы с плавающей запятой) или структуры и объединения простых переменных declarator только идентификатор.Дополнительные сведения о деклараторах см. в разделе деклараторы и объявления переменной.
Все определения неявно объявления, но не все объявления определения.Например, переменные, начинающиеся с помощью объявления extern описатель хранени-класса "ссылается на" вместо "определение" объявления.Если внешняя переменная быть сосланным значение, прежде чем она определена или если она определяется в другом файле источника из одного, в которой он используется, extern объявление необходимости.Хранилище не выбрано "ссылки" объявления и инициализации в объявлениях переменных.
Класс хранения или тип (или оба) необходимы в объявлении переменных.Except __declspecдопускается только один описатель хранени-класса в объявлении и не все настраиваемые описатели хранени-класса разрешены в каждом контексте.__declspec класс хранения допускается с другими описателями хранени-класса, и он может несколько раз.Описатель хранени-класса объявления влияет на то, как хранится и инициализируется объявленный элемент, и части программы могут ссылаться на элемент.
Storage-class-specifier стержни, определенные в c#: Авто" extern" регистр" Статическийи typedef.Кроме того, microsoft c# включает storage-class-specifier конечная точка __declspec.Все storage-class-specifier кроме стержни typedef и __declspec negotiate in Классы запоминающих устройств.См. Объявлении Typedef сведения о typedef.См. Дополнительные атрибуты класса хранения сведения о __declspec.
Расположение объявления в рамках программы источника и наличия или отсутствия других объявления переменной важные факторы при определении время существования переменных.Может быть несколько redeclarations но только одно определение.Однако определение может присутствовать более чем в одну единицу перевода.Для объектов с внутренним компоновкой это правило применяется отдельно к каждой единицы измерения перевода, так как внутренне связанные объекты являются уникальными для единицы измерения.Для объектов с внешней компоновкой это правило применяется ко всей программе.См. Время существования, область видимости, и переключателя дополнительные сведения о видимости.
Описатели типа предоставляют некоторые сведения о типах данных идентификаторов.Описатель типа по умолчанию int.Дополнительные сведения см. в разделе описатели типа.Описатели типа также могут определить имена тегов типа, структуры и объединения и констант перечисления компонентов.Дополнительные сведения см. в разделе Объявление перечисления" Объявление структурыи объявления соединения.
2 тип-квалификатор стержни: Const и volatile.Эти квалификаторы указывают дополнительные свойства типов, которые относятся только при доступе к объектам этого типа посредством левостороннего значения.Дополнительные сведения Const и volatileсм. Квалификаторы типов.Для определения l-значений см. в разделе Левостороннего значения выражения и значения r.