RPG

407. RPGでポインタを学習する(1)


ポインタの解説は済んでいるのかと思いきや
実はまだどこでも解説していなかった。
RPGプログラマーにもボインタの概念は重要であり
理解しておく必要がある。
RPGプログラマーに必要なポインタの使い方の例を
いくつかのパターンを挙げて紹介していきたい。
RPGでのポインタの使い方がわかれば
APIの使用方法の幅が広がるし動的なメモリの
使い方もできるようになる。

C言語のプログラマーてもポインタを苦手とする人はいる。
RPGプログラマーでポインタをストレスなく使いこなすことが
できるようになれば本物のプログラマーになったと
思ってよいだろう。

初回はポインタとは何かから解説を始めよう。

■ポインタとはフィールドの開始位置

多くの書物にはポインタとは「番地」と書かれていることが
多いがこの言葉は全くもって不適切である。
番地って何だ? 意味不明。
番地と言うと誰もが住所のことを想像していまう。
メモリに番地という用語は存在しない。
フィールドを定義するときにはコンパイラは

・フィールドの開始位置
・開始位置からの長さ

の2つの要素でフィールドの値を書く場所をメモリ内に
確保する。
どこに確保するのかはコンパイラが勝手に順序立てて
決めることなのでプログラマーは意識する必要はない。
このふたつの要素の中で特に

 

フィールドの開始位置のことをポインタと呼ぶ。

それだけのことである。

■ポインタを基底としてフィールドを決めることができる。

 フィールドは名前と属性と長さが決まればコンパイラが
 どこにこのフィールドの値を保管するかは自動的に
決めてくれるのだが
 逆にプログラマーがある指定したポインタからメモリを
 開始するフィールドを定義することができる。

 つまりフィールドの定義とは

 

(1)名前、属性、長さによって定義する

(2)指定したポインタから始まるフィールドを定義することができる。

というふたつの方法が可能であるということである。

■ポインタの2つの利用方法

 見てきたように

  ・ポインタとはフィールドの開始位置のことである。

  ・フィールドからポインタを取得することができるし
   ポインタから開始するフィールドを定義することができる。

..次回はRPGにおけるポインタの実際の使い方を例を挙げて解説する。