Tips

ローカル変数に対するポインタ

日付2006/09/18
ID06-003
バージョン2004.1
プラットフォームMac & Win

4th Dimension 2004.1では、ローカル変数に対するポインタが使用できます。ローカル変数は、変数名が$記号から始まり、次のような特性がある変数です:

- ローカル変数は特定のメソッドのために宣言し、
- そのメソッドがコールされた時点でメモリ上に作成され、
- そのメソッドの中に限って使用することができ、
- そのメソッドが終了した時点でメモリから消去され、
- 他のメソッドの中では存在しないものとして認識されます。

ローカル変数は、使用メソッドが実行されている間はメモリに存在しています。したがってそのメソッドが実行されている間は、そのローカル変数をポインタで参照し、他のメソッドには値をパラメータではなくポインタで渡したいという希望があっても不思議ではありません。

ローカル変数に対するポインタを使用するメリットの中でもっとも直接的なのが次のふたつです:

- メモリ使用が効率的です。(ポインタを使用すれば、コールされたメソッドで変数をコピーしなくてもよく、変数の型を宣言する必要もありません。)
- ローカル変数に対するポインタを使用し、汎用的なメソッド、ライブラリ、コンポーネントを作成することができます。 コンポーネントには、Protected(コードが非公開)またはPrivate(メソッド名およびコードが非公開)属性のメソッドが含まれますが、そのようなメソッドでローカル変数に対するポインタを使用することができます。

実際的な使用例:

インタープロセス配列にデータが収められていたとします。この配列を一時的に同じタイプのローカル配列にコピーするためにCopy_Arrayメソッドを作成しました。メソッドは必須パラメータでコピー元の配列ptrsourceとコピー先の配列ptrdestinationをポインタで受け取ります。任意のパラメータで始点startとコピー要素数 numberOfElements も指定することができます。始点と終点の指定ができないCOPY ARRAYコマンドに代わるものとしてこのメソッドを作成しました。

Copy_Array (ptrSource;ptrDestination{; start{;numberOfElements}})

例題 :



Copy_Arrayメソッドのコード:



テキスト形式