Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Атрибут [ref] идентифицирует указатель ссылки. Он используется просто для представления уровня косвенного обращения.
pointer_default(ref)
typedef [ ref [[ , type-attribute-list ]] ] type-specifier declarator-list;
typedef [ struct | union ]
{
[ ref [[ , field-attribute-list ]] ] type-specifier declarator-list;
...}
[[ [ function-attribute-list ] ]] type-specifier [[ptr-decl]] function-name(
[ ref [[ , parameter-attribute-list ]] ] type-specifier [[standard-declarator]]
, ...);
Параметры
-
type-attribute-list
-
Указывает один или несколько атрибутов, применяемых к типу. Допустимые атрибуты типа: [handle], [switch_type], [transmit_as]; атрибуты указателя [ссылка], [уникальный], или [ptr]; и атрибуты использования [context_handle], [строка] и [игнорировать]. Разделяйте несколько атрибутов запятыми.
-
type-specifier
-
Указывает базовый тип, структуру, объединение, тип перечисления или идентификатор типа. Необязательная спецификация хранилища может предшествовать описательу типа.
-
Стандартный декларатор
-
Указывает стандартный декларатор C, например идентификатор, декларатор указателя или декларатор массива. Дополнительные сведения см. в разделе Атрибуты массива и Sized-Pointer, массивы и массивы и указатели.
-
Declarator-list
-
Задает стандартные деклараторы C, такие как идентификаторы, деклараторы указателей и деклараторы массива. Дополнительные сведения см. в разделе Атрибуты массива и Sized-Pointer, массивы и массивы и указатели. Список деклараторов состоит из одного или нескольких деклараторов, разделенных запятыми. Идентификатор parameter-name в деклараторе функции является необязательным.
-
field-attribute-list
-
Указывает ноль или несколько атрибутов поля, которые применяются к параметру структуры, члена объединения или функции. Допустимые атрибуты полей: [first_is], [last_is], [length_is], [max_is], [size_is]; атрибуты использования [string], [ignore] и [context_handle]; атрибут указателя [ref], [unique], или [ptr]; и атрибут union [switch_type]. Разделяйте несколько атрибутов полей запятыми.
-
function-attribute-list
-
Указывает ноль или несколько атрибутов, применяемых к функции. Допустимые атрибуты функции: [callback], [local]; атрибут указателя [ref], [unique], или [ptr]; и атрибуты использования [string], [ignore] и [context_handle].
-
ptr-decl
-
Указывает по крайней мере один декларатор указателя, к которому применяется атрибут [ссылка] . Декларатор указателя совпадает с декларатором указателя, используемым в C; он создается из конструктора *, модификаторов, таких как far, и const квалификатора.
-
function-name
-
Указывает имя удаленной процедуры.
-
parameter-attribute-list
-
Состоит из нуля или нескольких атрибутов, соответствующих указанному типу параметра. Атрибуты параметра могут принимать атрибуты направления [in] и [out]; атрибуты поля [first_is], [last_is], [length_is], [max_is], [size_is] и [switch_type]; атрибут указателя [ref], [unique], или [ptr]; и атрибуты использования [context_handle] и [строка]. Атрибут использования [ignore] нельзя использовать в качестве атрибута параметра. Разделяйте несколько атрибутов запятыми.
Комментарии
Атрибут указателя можно применять как атрибут типа, как атрибут поля, который применяется к элементу структуры, элементу объединения или параметру; или как атрибут функции, который применяется к типу возвращаемого значения функции. Атрибут указателя также может отображаться с ключевое слово [pointer_default].
Указатель на ссылку имеет следующие характеристики:
- Всегда указывает на допустимое хранилище; никогда не имеет значения NULL. Ссылочный указатель всегда можно разыменовыть.
- Никогда не изменяется во время вызова. Указатель на ссылку всегда указывает на одно и то же хранилище на клиенте до и после вызова.
- Не выделяет новую память на клиенте. Данные, возвращаемые сервером, записываются в существующее хранилище, заданное значением указателя ссылки перед вызовом .
- Не вызывает псевдонимов. Хранилище, на которое указывает указатель ссылки, не может быть достигнуто из любого другого имени в функции.
Указатель на ссылку нельзя использовать в качестве типа указателя, возвращаемого функцией.
Если для параметра указателя верхнего уровня не указан атрибут, он обрабатывается как ссылочный указатель.
Примеры
[unique] char * GetFirstName(
[in, ref] char * pszFullName);
См. также раздел