Atributo struct

La palabra clave struct se usa en un especificador de tipo de estructura.

struct [[ struct-tag ]] 
{
  [[ [ field-attribute-list ] ]] type-specifier declarator-list;
    ...
};

Parámetros

struct-tag

Especifica una etiqueta opcional para la estructura.

field-attribute-list

Especifica cero o más atributos de campo que se aplican al miembro de estructura. Los atributos de campo válidos incluyen [first_is], [last_is], [length_is], [max_is]y [size_is]; los atributos de uso [string] y [ignore]; el atributo de puntero [ref], [unique], o [ptr]; y el atributo de unión [switch_type]. Separe varios atributos de campo con comas.

type-specifier

Especifica un tipo base, una estructura, una unióno un identificador de tipo de tipo. Una especificación de almacenamiento opcional puede preceder al especificador de tipos.

declarator-list

Especifica uno o varios declaradores de C estándar, como identificadores, declaradores de puntero y declaradores de matriz. (No se permiten declaradores de funciones ni declaraciones de campo de bits en estructuras que se transmiten en llamadas a procedimiento remoto. Estos declaradores se permiten en estructuras que no se transmiten). Separe varios declaradores con comas.

Observaciones

El especificador de tipo de estructura IDL, struct, difiere del especificador de tipo C estándar de las siguientes maneras:

  • Cada miembro de estructura se puede asociar a atributos de campo opcionales que describen las características de ese miembro de estructura para los fines de una llamada a procedimiento remoto.
  • Los campos de bits y los declaradores de función no se permiten en estructuras que se usan en llamadas a procedimientos remotos. Estas construcciones declaradoras de C estándar solo se pueden usar si la estructura no se transmite en la red.

La forma de las estructuras debe ser la misma en todas las plataformas para garantizar la interconectividad.

Ejemplos

typedef struct _PITCHER_RECORD_TYPE 
{ 
    short flag; 
    [switch_is(flag)] union PITCHER_STATISTICS_TYPE p; 
} PITCHER_RECORD_TYPE;

Vea también

Matrices

Matrices y punteros

Atributos de matriz y Sized-Pointer

Tipos base MIDL

/c_ext

context_handle

Enum

first_is

Archivo de definición de interfaz (IDL)

Ignorar

last_is

length_is

max_is

/Osf

Ptr

Ref

size_is

string

switch_type

union

unique