Deklarátory abstraktu jazyka C
Abstraktní deklarátor je deklarátor bez identifikátoru, sestávající se z jednoho nebo více ukazatelů, polí nebo modifikátorů funkce.Modifikátor ukazatele (*) vždy v deklarátoru předchází identifikátor. Modifikátory pole ([]) a funkce ( ( ) ) následují tento identifikátor.Když toto víte, můžete určit, kde by se identifikátor v abstraktním deklarátoru měl objevit a interpretovat tento deklarátor odpovídajícím způsobem.Další informace a příklady složitých deklarátorů naleznete v tématu Interpretace složitých deklarátorů.Obecný typedef slouží ke zjednodušení deklarátorů.Více informací naleznete v tématu Deklarace typedef.
Abstraktní deklarátory mohou být složité.Závorky ve složitých abstraktních deklarátorech určují konkrétní interpretaci, stejně jako je tomu u komplexních deklarátorů v deklaracích.
Tyto příklady ilustrují abstraktní deklarátory:
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, ... )
[!POZNÁMKA]
Abstraktní deklarátor sestávající se ze sady prázdných závorek, (), není povolen, protože není jednoznačný.Není možné určit, zda implicitní identifikátor patří do závorek (v tomto případě je to nezměněný typ) nebo před závorky (v tomto případě je to typ funkce).