Связь и интернет Архив Программирование
   
Сделать стартовойСделать закладку            
   ПОИСК  
   
Главная / C / C++ / Справочное руководство по С++ /
8  Perl
8  PHP
8  JavaScript
8  HTML
8  DHTML
8  XML
8  CSS
8  C / C++
8  Pascal и Delphi
8  Турбо Ассемблер
8  MySQL
8  CASE-технологии
8  Алгоритмы
8  Python
8  Обратная связь
8  Гостевая книга
Новости о мире


Описания - Программирование от RIN.RU
Описания


Описания используются для определения интерпретации, даваемой каждому идентификатору; они не обязательно резервируют память, связанную с идентификатором. Описания имеют вид:


описание:
спецификаторы_описания opt список_описателей opt ;
описание_имени
asm_описание


Описатели в списке_описателей содержат идентификаторы, подлежащие описанию. Спецификаторы_описания могут быть опущены только в определениях внешних функций (см. тут) или в описаниях внешних функций. Список описателей может быть пустым только при описании класса (cм. этот пункт) или перечисления (см. этот пункт), то есть, когда спецификаторы_описания - это class_спецификатор или enum_спецификатор. Описания имен описываются здесь; описания asm описаны в здесь.


спецификатор_описания:
sc_спецификатор
спецификатор_типа
фнк_спецификатор
friend
typedef


спецификаторы_описания:
спецификатор_описания спецификатор_описания opt


Список должен быть внутренне непротиворечив в описываемом ниже смысле.


Спецификаторы класса памяти


Спецификаторы "класса памяти" (sc-спецификатор) это:


sc-спецификатор:
auto
static
extern
register


Описания, использующие спецификаторы auto, static и register также служат определениями тем, что они вызывают резервирование соответствующего объема памяти. Если описание extern не является определением (этот пункт), то где-то еще должно быть определение для данных идентификаторов.


Описание register лучше всего представить как описание auto (автоматический) с подсказкой компилятору, что описанные переменные усиленно используются. Подсказка может быть проигнорирована. К ним не может применяться операция получения адреса &.


Спецификаторы auto или register могут применяться только к именам, описанным в блоке, или к формальным параметрам. Внутри блока не может быть описаний ни статических функций, ни статических формальных параметров.


В описании может быть задан максимум один sc_спецификатор. Если в описании отсутсвует sc_спецификатор, то класс памяти принимается автоматическим внутри функции и статическим вне. Исключение: функции не могут быть автоматическими.


Спецификаторы static и extern могут использоваться только для имен объектов и функций.


Некоторые спецификаторы могут использоваться только в описаниях функций:


фнк-спецификатор:
overload
inline
virtual


Спецификатор перегрузки overload делает возможным использование одного имени для обозначения нескольких функций; см. этот пункт.


Спецификатор inline является только подсказкой компилятору, не влияет на смысл программы и может быть проигнорирован. Он используется, чтобы указать на то, что при вызове функции inline- подстановка тела функции предпочтительнее обычной реализации вызова функции. Функция (этот пункт и этот пункт), определенная внутри описания класса, является inline по умолчанию.


Спецификатор virtual может использоваться только в описаниях членов класса; см. этот пункт.


Спецификатор friend используется для отмены правил скрытия имени для членов класса и может использоваться только внутри описаний классов; см. этот пункт.


С помощью спецификатора typedef вводится имя для типа; см. этот пункт.


Вперед  >>>
 1  2  3  4  5  6 


 8  Комментарии к статье  8 8  Обсудить в чате

8  В тему

Договоренности о лексике

Запись синтаксиса

Имена и типы

Объекты и LVALUE(адреса)

Преобразования

Выражения

Операторы

Внешние определения

Командные строки компилятора

Обзор типов

Константные выражения

Соображения мобильности

Свободная память

Краткое изложение синтаксиса

Отличия от "старого C"

 
  
  
    Copyright ©  RIN 2003 - 2004      * Обратная связь