宣言子 は、データ・オブジェクトまたは 関数を指定します。宣言子は、多くのデータ定義と宣言および一部の型定義で使用します。
宣言子では、オブジェクトの型として、配列、ポインター、または参照を指定 できます。また、宣言子内で初期化を実行することもできます。
宣言子の形式は、次のとおりです。
宣言子 >>-+----------------------+--direct_declarator----------------->< | .------------------. | | V | | '---pointer_operator-+-'
direct_declarator >>-+-declarator_name-------------------------------------------------------------------------------------+->< +-direct_declarator--(--parameter_declaration_list--)--+---------------+--+-------------------------+-+ | '-cv_qualifiers-' '-exception_specification-' | +-direct_declarator--[--+---------------------+--]----------------------------------------------------+ | '-constant_expression-' | '-(--declarator--)------------------------------------------------------------------------------------'
pointer_operator >>-+-*--+---------------+--------------------------------+----->< | '-cv_qualifiers-' | +-&---------------------------------------------------+ '-+----+--nested_name_specifier--*--+---------------+-' '-::-' '-cv_qualifiers-'
C における宣言子名の構文
declarator_id >>-+------------+---------------------------------------------->< '-identifier-'
C++ における宣言子名の構文
declarator_id >>-+----------------------------------------------+------------>< +-identifier_expression------------------------+ '-+----+--+-----------------------+--type_name-' '-::-' '-nested_name_specifier-'
宣言子構文に関する注意
スコープ解決演算子、テンプレート、およびその他の拡張機能による複雑さは、C には存在しませ ん。
次の表に、いくつかの宣言子の例を示します。
例 | 説明 |
---|---|
int owner | owner は、int データ・オブジェクトです。 |
int *node | node は、int データ・オブジェクトを指すポインターです。 |
int names[126] | names は、126 個の int エレメントの配列です。 |
int *action( ) | action は、int を指す ポインターを戻す関数です。 |
volatile int min | min は、volatile 修飾子がある int です。 |
int * volatile volume | volume は、int を指す volatile ポインターです。 |
volatile int * next | next は、volatile int を指す ポインターです。 |
volatile int * sequence[5] | sequence は、volatile int オブジェクトを 指す 5 つのポインターの配列です。 |
extern const volatile int clock | clock は、静的ストレージ期間および外部結合が指定された定数および volatile 整数です。 |
関連参照