atributo struct

A palavra-chave struct é usada em um especificador de tipo de estrutura.

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

Parâmetros

struct-tag

Especifica uma marca opcional para a estrutura.

field-attribute-list

Especifica zero ou mais atributos de campo que se aplicam ao membro da estrutura. Os atributos de campo válidos incluem [first_is], [last_is], [length_is], [max_is] e [size_is]; os atributos de uso [cadeiade caracteres] e [ignorar]; o atributo pointer [ref], [unique]ou [ptr]; e o atributo union [switch_type]. Separe vários atributos de campo com vírgulas.

type-specifier

Especifica um tipo base, struct, união ou identificador de tipo ou tipo de enumeração . Uma especificação de armazenamento opcional pode preceder o especificador de tipo.

declarator-list

Especifica um ou mais declaradores C padrão, como identificadores, declaradores de ponteiro e declaradores de matriz. (Declaradores de função e declarações de campo de bit não são permitidos em estruturas transmitidas em chamadas de procedimento remoto. Esses declaradores são permitidos em estruturas que não são transmitidas.) Separe vários declaradores com vírgulas.

Comentários

O especificador de tipo de estrutura IDL, struct, difere do especificador de tipo C padrão das seguintes maneiras:

  • Cada membro da estrutura pode ser associado a atributos de campo opcionais que descrevem características desse membro de estrutura para fins de uma chamada de procedimento remoto.
  • Campos de bit e declaradores de função não são permitidos em estruturas usadas em chamadas de procedimento remoto. Esses constructos de declarador C padrão só poderão ser usados se a estrutura não for transmitida na rede.

A forma de estruturas deve ser a mesma entre plataformas para garantir a interconectividade.

Exemplos

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

Confira também

Matrizes

Matrizes e ponteiros

Atributos de matriz e Sized-Pointer

Tipos de base MIDL

/c_ext

context_handle

Enum

first_is

Arquivo IDL (Definição de Interface)

Ignorar

last_is

length_is

max_is

/osf

ptr

ref

size_is

string

switch_type

União

Único