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;