有効な宣言
宣言構文:インデックス への移動
宣言できるオブジェクトの範囲は次のとおりです:
- 変数
- 関数
- クラスおよびクラス メンバ (C++)
- 型
- 構造体、共用体、列挙タグ
- 構造体のメンバー
- 共用体のメンバー
- 他の型の配列
- 列挙定数
- 文ラベル
- プリプロセッサ マクロ
宣言の完全な構文は、以下のとおりです。宣言子構文の再帰的性質によって、複雑な宣言子も作成できます。より読みやすくするために、typedefs を利用することも可能です。
C++Builder 宣言構文では、修飾子および限定子の数と順について制約がある点に注意してください。また、リストされている修飾子は、ANSI C または C++ の宣言子に追加された分のみです。これらの修飾子については、それぞれ、「変数修飾子」と「関数修飾子」でより詳しく説明されています。
C++Builder の宣言構文
declaration: <decl-specifiers> <declarator-list>; asm-declaration function-definition linkage-specification asm-declaration: __asm <(> string-literal <)> < ; or newline > decl-specifier: storage-class-specifier type-specifier function-specifier friend (C++ specific) typedef decl-specifiers: <decl-specifiers> decl-specifier storage-class-specifier: auto register static extern function-specifier: (C++ specific) inline virtual simple-type-name: class-name typedef-name boolean char short int __int8 __int16 __int32 __int64 long signed unsigned float double void declarator-list: init-declarator declarator-list , init-declarator init-declarator: declarator <initializer> declarator: dname modifier-list pointer-operator declarator declarator ( parameter-declaration-list ) <cv-qualifier-list> (C++ specifiс) declarator [ <constant-expression> ] ( declarator ) modifier-list: modifier modifier-list modifier modifier: __cdecl __pascal __stdcall __fastcall pointer-operator: * <cv-qualifier-list> & <cv-qualifier-list> (C++ specific) class-name :: * <cv-qualifier-list> (C++ specific) cv-qualifier-list: cv-qualifier <cv-qualifier-list> cv-qualifier: const volatile dname: name class-name (C++ specific) ~ class-name (C++ specific) type-defined-name elaborated-type-specifier: class-key identifier class-key class-name enum enum-name class-key: (C++ specific) class struct union enum-specifier: enum <identifier> { <enum-list> } enum-list: enumerator enumerator-list , enumerator enumerator: identifier identifier = constant-expression constant-expression: conditional-expression linkage-specification: (C++ specific) extern string { <declaration-list> } extern string declaration type-specifier: simple-type-name class-specifier enum-specifier elaborated-type-specifier const volatile declaration-list: declaration declaration-list ; declaration type-name: type-specifier <abstract-declarator> abstract-declarator: pointer-operator <abstract-declarator> <abstract-declarator> ( argument-declaration-list ) <cv-qualifier-list> <abstract-declarator> [ <constant-expression> ] ( abstract-declarator ) argument-declaration-list: <arg-declaration-list> arg-declaration-list , ... <arg-declaration-list> ... (C++ specific) arg-declaration-list: argument-declaration arg-declaration-list , argument-declaration argument-declaration: decl-specifiers declarator decl-specifiers declarator = expression (C++ specific) decl-specifiers <abstract-declarator> decl-specifiers <abstract-declarator> = expression (C++ specific) function-definition: <decl-specifiers> declarator <declaration-list> function-body function-body: compound-statement initializer: = expression = { initializer-list } ( expression-list ) (C++ specific) initializer-list: expression initializer-list , expression { initializer-list <,> }