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, ... )
注意事項 |
---|
抽象的宣告子包含空括號內,一群 (),不允許,因為它是模稜兩可。很難判斷 (在這種情況是未經修改的型別) 在括號或括號 (在這種情況是函式型別) 之前,是否屬於隱含的識別項。 |