データ宣言とデータ定義の概要
宣言 では、 プログラムで使われるデータ・オブジェクトの名前および特性が確立されます。 定義 は、データ・オブジェクトにストレージを割り振り、そのオブジェクトに ID を関連付けます。 型 を宣言または定義するときは、ストレージは割り振られません。
次の表は、宣言と定義の例を示しています。最初の列に宣言されている ID は、ストレージを割り当てません。 これらの ID は、対応する定義を参照します。2 番目の列に宣言されている ID は、ストレージを割り振ります。これらの ID は、 宣言と定義の両方になります。
| 宣言 | 宣言と定義 |
|---|---|
| extern double pi; | double pi = 3.14159265; |
| struct payroll; | struct payroll { |
注:
C99 標準では、すべての宣言が関数の先頭で最初のステートメントの前に置かれていなけ
ればならないという制限がなくなりました。C++ と同様に、コード内で宣言と他のステートメントを混在させることができます。
C99 標準では、すべての宣言が関数の先頭で最初のステートメントの前に置かれていなけ
ればならないという制限がなくなりました。C++ と同様に、コード内で宣言と他のステートメントを混在させることができます。宣言は、データ・オブジェクトおよび
それらの ID の以下の属性を決定します。
- スコープ。これは、オブジェクトにアクセスするために ID を使用できるプログラム・テキスト領域を記述します。
- 可視性。これは、ID のオブジェクトへ正しくアクセスできるプログラム・テキスト領域を記述します。
- 期間。これは、ID がメモリー内に割り振られた実際の物理オブジェクトを保持 する期間を定義します。
- リンケージ。これは、ある特定のオブジェクトへの ID の正確な関連付けを記述します。
- タイプ。オブジェクトにどのくらいのメモリーが割り振られるか、そのオブジェクトのスト レージ割り当てで検出されたビット・パターンをプログラムがどのように解釈すべきかを決定します。
データ・オブジェクトを宣言する際のエレメントは、次のとおりです。
- ストレージ・クラス指定子。これは、ストレージ期間とリンケージを指定します。
- 型指定子。これは、データ型を指定します。
- 型修飾子。これは、データ値の変更の可/不可を指定し ます。
- 宣言子の概要。ID を導入して組み込みます
- 初期化指定子。これは、ストレージを初期値で初期化します。
IBM® 拡張の始まり。
また、ILE C/C++ では、属性 を使用して、データ・オブジェクトのプロパティーを変更できます。 型 属性 (これを 使用してユーザー定義型の定義を変更できます) については、型属性で説明しています。変数属性 (これを使用して変数の宣 言を変更できます) については、変数属性で説明してい ます。
IBM 拡張の終わり。
すべての宣言の形式は、次のとおりです。
データ宣言の構文 .-----------------------------. .--------------------. V | V | >>---+-------------------------+-+----+----------------+-+------> '-storage_class_specifier-' '-type_qualifier-' .-,---------------------------. V | >--type_specifier----declarator--+-------------+-+--;---------->< '-initializer-'
関連情報
