Attributo struct
La parola chiave struct viene usata in un identificatore di tipo struttura.
struct [[ struct-tag ]]
{
[[ [ field-attribute-list ] ]] type-specifier declarator-list;
...
};
-
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.
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à.
typedef struct _PITCHER_RECORD_TYPE
{
short flag;
[switch_is(flag)] union PITCHER_STATISTICS_TYPE p;
} PITCHER_RECORD_TYPE;