arrays-Attribut
Arrays sind homogene Auflistungen von Daten, auf die über einen Index oder eine Elementnummer zugegriffen wird.
typedef [ [type-attr-list] ] type-specifier [pointer-decl] array-declarator;
typedef [ [type-attr-list] ] struct [ tag ]
{
[ [ field-attribute-list ] ] type-specifier [pointer-decl] array-declarator;
...
};
typedef [ [type-attr-list] ] union [ tag ]
{
[ case (limited-expression [ , ... ] ) ]
[ [ field-attribute-list ] ] type-specifier [pointer-decl] array-declarator;
[ [ default ]
[ [ field-attribute-list ] ] type-specifier [pointer-decl] array-declarator;
]
};
[[ [function-attribute-list] ]] type-specifier [[pointer-decl]] function-name(
[[ [param-attr-list] ]] type-specifier [[pointer-decl]] array-declarator
, ...);
-
type-attr-list
-
Gibt null oder mehr Attribute an, die für den Typ gelten. Gültige Typattribute sind [handle], [switch_type], [transmit_as]; das Zeiger-Attribut [ref], [eindeutig], oder [ptr]; und die Verwendungsattribute [context_handle], [Zeichenfolge] und [ignore]. Trennen Sie mehrere Attribute durch Kommas.
-
Typspezifizierer
-
Gibt den Typbezeichner, Basistyp, Struktur, Union oder Enumerationstyp an. Die Typspezifikation kann eine optionale Speicherspezifikation enthalten.
-
zeiger-decl
-
Gibt null oder mehr Zeiger-Deklaratoren an. Ein Zeigerdeklarator ist identisch mit dem in C verwendeten Zeigerdeklarator, der aus dem * Bezeichner, Modifizierern wie far und dem Qualifizierer const erstellt wird.
-
Arraydeklarator
-
Gibt den Namen des Arrays an, gefolgt von einem der folgenden Konstrukte für jede Dimension des Arrays: "[ ]", "[*]", "[const1]" oder "[lower... upper]", wobei unter und oben konstante Werte sind, die die untere und obere Grenze darstellen. Die Konstante niedriger muss zu 0 (null) ausgewertet werden.
-
Etikett
-
Gibt ein optionales Tag für die Struktur oder Union an.
-
field-attribute-list
-
Gibt null oder mehr Feldattribute an, die für die Struktur, den Union-Member oder den Funktionsparameter gelten. Gültige Feldattribute sind [first_is], [last_is], [length_is], [max_is], [size_is]; die Verwendungsattribute [string] und [ignore]; die Zeigerattribute [ref], [eindeutig], und [ptr]; und das Union-Attribut [switch_type]. Trennen Sie mehrere Feldattribute durch Kommas. Beachten Sie, dass die oben aufgeführten Attribute [first_is], [last_is] und [ignore] für Unions ungültig sind.
-
limited-expression
-
Gibt einen C-Sprachausdruck an. Der MIDL-Compiler unterstützt bedingte Ausdrücke, logische Ausdrücke, relationale Ausdrücke und arithmetische Ausdrücke. MIDL lässt keine Funktionsaufrufe in Ausdrücken zu und lässt keine Inkrement- und Dekrementoperatoren zu.
-
function-attribute-list
-
Gibt null oder mehr Attribute an, die für die Funktion gelten. Gültige Funktionsattribute sind [Callback], [local]; das Zeiger-Attribut [ref], [eindeutig], oder [ptr]; und die Verwendungsattribute [Zeichenfolge] und [context_handle].
-
Funktionsname
-
Gibt den Namen der Remoteprozedur an.
-
param-attr-list
-
Gibt die direktionalen Attribute und mindestens ein optionales Feldattribute an, die für den Arrayparameter gelten. Gültige Feldattribute sind [max_is], [size_is], [length_is], [first_is] und [last_is].
Arrays in MIDL verwenden einen Stil ähnlich wie C und C++. Weitere Informationen finden Sie unter MIDL-Arrays.