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

Tableaux

Tableaux et pointeurs

Attributs de tableau et de Sized-Pointer

MIDL Base Types

/c_ext

context_handle

Enum

first_is

Fichier de définition d’interface (IDL)

Ignorer

last_is

length_is

max_is

/Osf

Ptr

Ref

size_is

String

switch_type

Union

Unique