The IDL type_declaration enables you to associate a name with a data type and to specify attributes of the data type. It takes the following form:
typedef [[type_attribute, ...]] type_specifier type_declarator, ... ;
A type_attribute specifies characteristics of the type being declared.
The type_specifier can specify a base type, a constructed type, a predefined type, or a named type. A function pointer can be specified if the local attribute has been specified.
Each type_declarator is a name for the type being defined. Note, though, that a type_declarator can also be preceded by an * (asterisk), followed by [ ] (brackets), and can include ( ) (parentheses) to indicate the precedence of its components.
More: