struct-Attribut

Das struct-Schlüsselwort 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.

Feldattributliste

Gibt null oder mehr Feldattribute an, die für den Struktur member gelten. Zu den gültigen Feldattributen gehören zuerst ist , last ist , length ist , max ist , und size ist , die Verwendungsattribute string und ignore; das Zeigerattribut [ _ ] [ _ ] [ _ ] [ _ ] [ _ ] [ ] [ ] [ ref,unique oder ptr und der ] [ ] [ ] Union-Attributschaltertyp [ _ ] . Trennen Sie mehrere Feldattribute durch Kommas.

Typspezifizierer

Gibt einen Basistyp, eine Struktur, eine Unionoder einen enum-Typ oder Typbezeichner an. Eine optionale Speicherspezifikation kann dem Typspezifizierer vorangestellt werden.

declarator-list

Gibt einen oder mehrere C-Standarddeklaratoren an, z. B. Bezeichner, Zeigerdeklaratoren und Arraydeklaratoren. (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 wie folgt vom C-Standardtypspezifizierer:

  • Jedem Strukturmitglied können optionale Feldattribute zugeordnet werden, die Merkmale dieses Strukturmitglieds für einen Remoteprozeduraufruf beschreiben.
  • Bitfelder und Funktionsdeklaratoren sind in Strukturen, die in Remoteprozeduraufrufen verwendet werden, nicht zulässig. Diese C-Standarddeklaratorkonstrukte können nur verwendet werden, wenn die Struktur nicht über das Netzwerk übertragen wird.

Die Form der 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- Sized-Pointer Attribute

MIDL-Basistypen

/c _ ext

Kontexthand _ handle

Enum

first _ is

IDL-Datei (Interface Definition)

Ignorieren

last _ is

length _ ist

max _ is

/osf

Ptr

ref

size _ ist

Schnur

_switch-Typ

union

Einzigartige