C抽象声明
没有标识符,包括一个或多个指针,数组或函数修饰符,抽象声明是声明。 指针 (*) 始终排在声明的标识符;数组 ([]) 和功能 (()) 修饰符下一个标识符。 知道这种情况,您可以确定该标识符在何处显示在一个抽象声明并相应地解释该声明。 用于复杂声明的附加信息和示例 解释更复杂的声明 参见。 通常 typedef 可以使用简化声明。 Typedef 声明参见。
抽象声明可能会很复杂。 就象在文档中,复杂的声明执行在复杂的抽象声明的括号指定特定说明。
这些示例声明抽象声明:
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, ... )
备注
,因为它不明确,抽象声明附带的设置空括号, (),这是不允许的。确定是不可能的提示的标识符是否属于括号内 (在它是非限定的类型) 情况下或在括号之前 (在它是函数类型) 情况下。