Freigeben über


struct-Attribut

Die Struktur Schlüsselwort (keyword) wird in einem Strukturtypspezifizierer verwendet.

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

Parameter

struct-tag

Gibt ein optionales Tag für die -Struktur an.

field-attribute-list

Gibt null oder mehr Feldattribute an, die für den Strukturmember gelten. Gültige Feldattribute sind [first_is], [last_is], [length_is], [max_is] und [size_is]; die Verwendungsattribute [string] und [ignore]; das Zeiger-Attribut [ref], [eindeutig], oder [ptr]; und das Union-Attribut [switch_type]. Trennen Sie mehrere Feldattribute durch Kommas.

Typspezifizierer

Gibt einen Basistyp, eine Struktur, einen Union-, einen Enumerationstyp oder einen Typbezeichner an. Eine optionale Speicherspezifikation kann dem Typbezeichner vorangestellt werden.

declarator-list

Gibt mindestens einen C-Standard-Deklarator an, z. B. Bezeichner, Zeiger-Deklaratoren und Array-Deklaratoren. (Funktionsdeklaratoren und Bitfelddeklarationen sind in Strukturen, die in Remoteprozeduraufrufen übertragen werden, nicht zulässig. Diese Deklaratoren sind in Strukturen zulässig, die nicht übertragen werden.) Trennen Sie mehrere Deklaratoren durch Kommas.

Bemerkungen

Der IDL-Strukturtypspezifizierer struct unterscheidet sich auf folgende Weise vom Standardmäßigen C-Typspezifizierer:

  • Jedem Strukturmember können optionale Feldattribute zugeordnet werden, die Merkmale dieses Strukturelements für die Zwecke eines Remoteprozeduraufrufs beschreiben.
  • Bitfelder und Funktionsdeklarationsfunktionen sind in Strukturen, die in Remoteprozeduraufrufen verwendet werden, nicht zulässig. Diese Standardmäßigen C-Deklaratorkonstrukte können nur verwendet werden, wenn die Struktur nicht im Netzwerk übertragen wird.

Die Form von Strukturen muss plattformübergreifend identisch sein, um die Interkonnektivität sicherzustellen.

Beispiele

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

Weitere Informationen

Arrays

Arrays und Zeiger

Array- und Sized-Pointer attribute

MIDL-Basistypen

/c_ext

context_handle

Enum

first_is

IDL-Datei (Interface Definition)

Ignorieren

last_is

length_is

max_is

/Osf

Ptr

Ref

size_is

Schnur

switch_type

union

Einzigartige