Программирование >>  Перегруженные имена функций и идентификаторы 

1 ... 7 8 9 [ 10 ] 11 12 13 ... 210


Объявление совмещения имеет тот же самый синтаксис, как и объявление структуры, за исключением того, что она начинается с ключевого слова union вместо ключевого слова struct. Для объявления совмещения и структуры действуют одни и те же правила, за исключением того, что в совмещении не допускаются элементы типа битовых полей.

Память, которая соответствует переменной типа совмещение, определяется величиной для размещения любого отдельного элемента совмещения.

Когда используется наименьший элемент совмещения, то переменная типа совмещения может содержать неиспользованное пространство. Все элементы совмещения запоминаются в одном и том же пространстве памяти переменной, начиная с одного и того же адреса. Запомненные значения затираются каждый раз, когда присваивается значение очередного элемента совмещения.

Объявление массива

Синтаксис:

<type-specifier><declarator>[<constant-expression>]; <type-specifier><declarator>[];

Здесь квадратные скобки - это терминальные символы. Объявление массива определяет тип массива и тип каждого элемента. Оно может определять также число элементов в массиве. Переменная типа массив рассматривается как указатель на элементы массива. Объявление массива может представляться в двух синтаксических формах, указанных выше.

Декларатор <declarator> задает имя переменной. Квадратные скобки, следующие за декларатором, модифицируют декларатор на тип массива. Константное выражение <constant-expression>, заключенное в квадратные скобки, определяет число элементов в массиве. Каждый элемент имеет тип, задаваемый спецификатором типа <type-specifier>, который может специфицировать любой тип, исключая void и тип функции.

Во второй синтаксической форме опущено константное выражение в квадратных скобках. Эта форма может быть использована только тогда, когда массив инициализируется или объявлен как формальный параметр или объявлен как ссылка на массив, явно определенный где-то в программе.



Массив массивов или многомерный массив определяется путем задания списка константных выражений в квадратных скобках, следующего за декларатором:

<type-specifier><declarator>[<constant-expression>] [<constant-expression>]...

Каждое константное выражение <constant-expression> в

квадратных скобках определяет число элементов в данном измерении массива, так что объявление двумерного массива содержит два константных выражения, трехмерного - три и т.д. Если многомерный массив объявляется внутри функции или если он инициализируется либо объявляется как формальный параметр или объявляется как ссылка на массив, явно определенный где-то в программе, то первое константное выражение может быть опущено.

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

Типу массив соответствует память, которая требуется для размещения всех его элементов. Элементы массива с первого до последнего запоминаются в последовательных возрастающих адресах памяти. Между элементами массива в памяти разрывы отсутствуют. Элементы массива запоминаются друг за другом построчно. Например, массив, содержащий две строки с тремя столбцами каждая, char A[2][3] будет запомнен следующим образом. Сначала запоминаются три столбца первой строки, затем элементы трех столбцов второй строки. Смысл этого в том, чтобы последний индекс был более быстрым. Чтобы сослаться на отдельный элемент массива, нужно использовать индексное выражение.

Объявление указателей

Синтаксис:

<type-specifier> *<declarator>

Объявление указателя определяет имя переменной типа указатель и тип объекта, на который указывает эта переменная. Декларатор <declarator> определяет имя переменной с возможной модификацией ее типа. Спецификатор типа <type- specifier> задает тип объекта, который может быть базового типа, типа структуры или совмещения.



Переменная типа указатель может указывать также на функции, массивы и другие указатели.

Если указатель не используется до определения типа структуры или совмещения, то он может быть объявлен ранее этого определения. Такие объявления допускаются, поскольку компилятору не требуется знать размер структуры или совмещения, чтобы распределить память под переменную типа указатель. Указатель может быть объявлен посредством использования тега структуры или совмещения.

Переменная, объявленная как указатель, хранит адрес памяти. Размер памяти, требуемый для адреса, и смысл адреса зависит от данной конфигурации машины. Указатели на различные типы не обязательно имеют одну и ту же длину.

Для некоторых реализаций используются специальные ключевые слова near, far и huge, чтобы модифицировать размер указателя.

Как объявляются функции

Синтаксис:

[<type-specifier>]<declarator>([<arg-type-list>]) [,<declarator>...];

Объявление функции определяет имя, тип возврата функции и, возможно, типы и число ее аргументов. Объявление функции также называется forward-объявлением. Декларатор функции объявляет имя функции, а спецификатор типа задает тип возврата. Если спецификатор типа опущен в объявлении функции, то предполагается, что функция возвращает величину типа int.

Объявление функции может включать спецификаторы класса памяти extern или static.

Список типов аргументов

Список типов аргументов <arg-type-list> определяет число и типы аргументов функции. Синтаксис списка аргументов следующий:

<type-name-list>[,...]

Список имен типов - это список из одного или более имен типов. Каждое имя типа отделяется от другого запятой. Первое имя типа задает тип первого аргумента, второе имя типа задает



1 ... 7 8 9 [ 10 ] 11 12 13 ... 210

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика