attribut struct
Le struct mot clé est utilisé dans un spécificateur de type structure.
struct [[ struct-tag ]]
{
[[ [ field-attribute-list ] ]] type-specifier declarator-list;
...
};
Paramètres
-
struct-tag
-
Spécifie une balise facultative pour la structure.
-
field-attribute-list
-
Spécifie zéro ou plusieurs attributs de champ qui s’appliquent au membre de la structure. Les attributs de champ valides incluent [first_is],[last_is],[length_is], [max_is] et [size_is]; les attributs d’utilisation [string] et [ignore] ; l’attribut pointeur [ref], [unique] ou [ptr]; et l’attribut union [switch_type]. Séparez plusieurs attributs de champ par des virgules.
-
type-specifier
-
Spécifie un type de base, un struct, une union ou un type d’énumération ou un identificateur de type. Une spécification de stockage facultative peut précéder le spécificateur de type.
-
declarator-list
-
Spécifie un ou plusieurs déclarateurs C standard, tels que des identificateurs, des déclarateurs de pointeurs et des déclarateurs de tableau. (Les déclarateurs de fonction et les déclarations de champ binaire ne sont pas autorisés dans les structures transmises dans les appels de procédure distante. Ces déclarateurs sont autorisés dans les structures qui ne sont pas transmises.) Séparez plusieurs déclarateurs par des virgules.
Notes
Le spécificateur de type de structure IDL, struct, diffère du spécificateur de type C standard des manières suivantes :
- Chaque membre de structure peut être associé à des attributs de champ facultatifs qui décrivent les caractéristiques de ce membre de structure dans le cadre d’un appel de procédure distante.
- Les champs de bits et les déclarateurs de fonction ne sont pas autorisés dans les structures utilisées dans les appels de procédure distante. Ces constructions de déclarateur C standard peuvent être utilisées uniquement si la structure n’est pas transmise sur le réseau.
La forme des structures doit être la même d’une plateforme à l’autre pour garantir l’interconnectivité.
Exemples
typedef struct _PITCHER_RECORD_TYPE
{
short flag;
[switch_is(flag)] union PITCHER_STATISTICS_TYPE p;
} PITCHER_RECORD_TYPE;
Voir aussi