Прочитать на английском

Поделиться через


Атрибут struct

Структура ключевое слово используется в спецификаторе типа структуры.

struct [[ struct-tag ]] 
{
  [[ [ field-attribute-list ] ]] type-specifier declarator-list;
    ...
};

Параметры

struct-tag

Указывает необязательный тег для структуры.

field-attribute-list

Указывает ноль или несколько атрибутов поля, которые применяются к члену структуры. Допустимые атрибуты полей: [first_is], [last_is], [length_is], [max_is] и [size_is]; атрибуты использования [string] и [ignore]; атрибут указателя [ссылка], [уникальный], или [ptr]; и атрибут объединения [switch_type]. Разделяйте несколько атрибутов полей запятыми.

описатель типа

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

declarator-list

Указывает один или несколько стандартных деклараторов C, таких как идентификаторы, деклараторы указателей и деклараторы массива. (Деклараторы функций и объявления битовых полей не допускаются в структурах, передаваемых в удаленных вызовах процедур. Эти деклараторы разрешены в структурах, которые не передаются.) Разделяйте несколько деклараторов запятыми.

Комментарии

Описатель типа структуры IDL , структура, отличается от стандартного описателя типа C следующими способами:

  • Каждый элемент структуры можно связать с необязательными атрибутами поля, которые описывают характеристики этого элемента структуры для удаленного вызова процедуры.
  • Битовые поля и деклараторы функций не допускаются в структурах, используемых в удаленных вызовах процедур. Эти стандартные конструкции декларатора C можно использовать только в том случае, если структура не передается по сети.

Для обеспечения взаимосвязи структура должна быть одинаковой на разных платформах.

Примеры

typedef struct _PITCHER_RECORD_TYPE 
{ 
    short flag; 
    [switch_is(flag)] union PITCHER_STATISTICS_TYPE p; 
} PITCHER_RECORD_TYPE;

См. также раздел

Массивы

Массивы и указатели

Атрибуты массива и Sized-Pointer

Базовые типы MIDL

/c_ext

context_handle

Перечисления

first_is

Файл определения интерфейса (IDL)

Игнорировать

last_is

length_is

max_is

/Osf

Ptr

Ref

size_is

строка

switch_type

union

Уникальный