Attributo struct

La parola chiave struct viene usata in un identificatore di tipo struttura.

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

Parametri

struct-tag

Specifica un tag facoltativo per la struttura.

field-attribute-list

Specifica zero o più attributi di campo che si applicano al membro della struttura. Gli attributi di campo validi includono [first_is], [last_is], [length_is], [max_is], e [size_is]; gli attributi di utilizzo [string] e [ignore]; l'attributo puntatore [ref], [unique]o [ptr]; e l'attributo union [switch_type]. Separare più attributi di campo con virgole.

type-specifier

Specifica un tipo di base, uno struct, un'unione o un tipo di enumerazione o un identificatore di tipo. Una specifica di archiviazione facoltativa può precedere l'identificatore di tipo.

declarator-list

Specifica uno o più dichiaratori C standard, ad esempio identificatori, dichiaratori puntatori e dichiaratori di matrice. I dichiaratori di funzione e le dichiarazioni di campo di bit non sono consentiti nelle strutture trasmesse nelle chiamate di routine remote. Questi dichiaratori sono consentiti in strutture che non vengono trasmesse. Separare più dichiaratori con virgole.

Commenti

L'identificatore di tipo di struttura IDL, struct, differisce dall'identificatore di tipo C standard nei modi seguenti:

  • Ogni membro della struttura può essere associato a attributi di campo facoltativi che descrivono le caratteristiche del membro della struttura ai fini di una chiamata di routine remota.
  • I campi di bit e i dichiaratori di funzione non sono consentiti nelle strutture usate nelle chiamate di routine remota. Questi costrutti dichiarativi C standard possono essere usati solo se la struttura non viene trasmessa in rete.

La forma delle strutture deve essere la stessa tra le piattaforme per garantire l'interconnettività.

Esempi

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

Vedere anche

Matrici

Matrici e puntatori

Attributi di matrice e Sized-Pointer

Tipi di base MIDL

/c_ext

context_handle

Enum

first_is

File IDL (Interface Definition)

Ignorare

last_is

length_is

max_is

/Osf

Ptr

Ref

size_is

string

switch_type

Unione

Unico