Атрибут 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;