2016-04-22 2 views
1

Cの例では、静的変数には範囲外になっても値が保持されます。したがって、静的変数は以前の値を以前のスコープで保持し、新しいスコープで再び初期化されません。Adaの関数への可変データ結合の実現(Cの関数の静的変数に似ています)

どのように変数がprogranの終わりまで生きることが保証されているが、そのスコープは関数に限定され、データ結合も保証されなければならないAda言語で同じ機能を実現できますか?

+0

パッケージ。それらは関数をエクスポートしますが、プライベート部分またはパッケージ本体のいずれかで宣言された変数は、それらの関数だけが見ることができます。 (これはパッケージの1つの用途に過ぎません) –

+0

同じパッケージ内のすべての関数ではなく、変数を1つの関数だけに表示させたい場合はどうすればよいですか? –

+1

あなたが必要としているのであれば、その機能に独自のパッケージ(または子パッケージ)を与えることを誰も止めません。 –

答えて

1

パッケージ仕様および本体で直接宣言された変数は、プログラムが実行されている間は状態を保持します。

サブプログラムのローカル変数はそのままにすることはできませんが、パッケージ内に単一のサブプログラムを宣言して、パッケージの本体に永続変数を宣言することができます。

関連する問題