attribut arrays
Les tableaux sont des collections homogènes de données accessibles par un index ou un numéro d’élément.
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
-
Spécifie zéro ou plusieurs attributs qui s’appliquent au type. Les attributs de type valides incluent [handle], [switch_type], [transmit_as]; l’attribut pointeur [ref], [unique] ou [ptr]; et les attributs d’utilisation [context_handle],[string] et [ignore]. Séparez plusieurs attributs par des virgules.
-
type-specifier
-
Spécifie l’identificateur de type, le type de base, le struct, l’union ou le type d’énumération . La spécification de type peut inclure une spécification de stockage facultative.
-
pointer-decl
-
Spécifie zéro ou plusieurs déclarateurs de pointeur. Un déclarateur de pointeur est le même que le déclarateur de pointeur utilisé dans C, construit à partir de l’indicateur * , des modificateurs tels que far et du qualificateur const.
-
array-declarator
-
Spécifie le nom du tableau, suivi de l’une des constructions suivantes pour chaque dimension du tableau : « [ ] », « [*] », « [const1] » ou « [lower... upper] » où lower et upper sont des valeurs constantes qui représentent les limites inférieure et supérieure. La constante inférieure doit être évaluée à zéro.
-
étiquette
-
Spécifie une balise facultative pour la structure ou l’union.
-
field-attribute-list
-
Spécifie zéro ou plusieurs attributs de champ qui s’appliquent au paramètre de structure, de membre d’union ou de fonction. Les attributs de champ valides sont [first_is], [last_is], [length_is], [max_is], [size_is]; les attributs d’utilisation [string] et [ignore] ; les attributs de pointeur [ref], [unique] et [ptr]; et l’attribut union [switch_type]. Séparez plusieurs attributs de champ par des virgules. Notez que parmi les attributs répertoriés ci-dessus, [first_is],[last_is] et [ignore] ne sont pas valides pour les unions.
-
expression limitée
-
Spécifie une expression en langage C. Le compilateur MIDL prend en charge les expressions conditionnelles, les expressions logiques, les expressions relationnelles et les expressions arithmétiques. MIDL n’autorise pas les appels de fonction dans les expressions et n’autorise pas les opérateurs d’incrémentation et de décrémentation.
-
function-attribute-list
-
Spécifie zéro ou plusieurs attributs qui s’appliquent à la fonction. Les attributs de fonction valides sont [callback], [local]; l’attribut pointeur [ref], [unique] ou [ptr]; et les attributs d’utilisation [string], et [context_handle].
-
function-name
-
Spécifie le nom de la procédure distante.
-
param-attr-list
-
Spécifie les attributs directionnels et un ou plusieurs attributs de champ facultatifs qui s’appliquent au paramètre de tableau. Les attributs de champ valides incluent [max_is],[size_is],[length_is], [first_is] et [last_is].
Les tableaux dans MIDL utilisent un style similaire à C et C++, mais pas exactement le même. Pour plus d’informations, consultez Tableaux MIDL.