C declaradores abstratos
Um Declarador abstrata é um Declarador sem um identificador, que consiste em um ou mais ponteiro, matriz ou modificadores de função.O modificador de ponteiro (*) sempre antecede o identificador em um Declarador; array ([]) e a função ( () ) modificadores siga o identificador.Sabendo disso, você pode determinar onde o identificador seria aparecem em um Declarador abstrata e interpretar o Declarador de maneira adequada.Consulte Interpretando mais complexos declaradores para obter informações adicionais e exemplos de declaradores complexos.Geralmente, typedef pode ser usado para simplificar a declaradores.Consulte Typedef declarações.
Declaradores abstratas podem ser complexas.Parênteses em uma complexa Declarador abstrata especificam uma interpretação específica, como fazem para os complexos declaradores em declarações.
Estes exemplos ilustram declaradores abstratos:
int * // The type name for a pointer to type int:
int *[3] // An array of three pointers to int
int (*) [5] // A pointer to an array of five int
int *() // A function with no parameter specification
// returning a pointer to int
// A pointer to a function taking no arguments and
// returning an int
int (*) ( void )
// An array of an unspecified number of constant pointers to
// functions each with one parameter that has type unsigned int
// and an unspecified number of other parameters returning an int
int (*const []) ( unsigned int, ... )
Observação |
---|
O Declarador abstrato que consiste em um conjunto de parênteses vazios, (), não é permitida porque ele é ambíguo.É impossível determinar se o identificador implícito pertence dentro dos parênteses (caso em que é um tipo não modificado) ou antes dos parênteses (caso em que ele é um tipo de função). |