ポインタの解説は済んでいるのかと思いきや
実はまだどこでも解説していなかった。
RPGプログラマーにもボインタの概念は重要であり
理解しておく必要がある。
RPGプログラマーに必要なポインタの使い方の例を
いくつかのパターンを挙げて紹介していきたい。
RPGでのポインタの使い方がわかれば
APIの使用方法の幅が広がるし動的なメモリの
使い方もできるようになる。
C言語のプログラマーてもポインタを苦手とする人はいる。
RPGプログラマーでポインタをストレスなく使いこなすことが
できるようになれば本物のプログラマーになったと
思ってよいだろう。
初回はポインタとは何かから解説を始めよう。
■ポインタとはフィールドの開始位置
多くの書物にはポインタとは「番地」と書かれていることが
多いがこの言葉は全くもって不適切である。
番地って何だ? 意味不明。
番地と言うと誰もが住所のことを想像していまう。
メモリに番地という用語は存在しない。
フィールドを定義するときにはコンパイラは
・フィールドの開始位置
・開始位置からの長さ
の2つの要素でフィールドの値を書く場所をメモリ内に
確保する。
どこに確保するのかはコンパイラが勝手に順序立てて
決めることなのでプログラマーは意識する必要はない。
このふたつの要素の中で特に
フィールドの開始位置のことをポインタと呼ぶ。
それだけのことである。
■ポインタを基底としてフィールドを決めることができる。
フィールドは名前と属性と長さが決まればコンパイラが
どこにこのフィールドの値を保管するかは自動的に
決めてくれるのだが
逆にプログラマーがある指定したポインタからメモリを
開始するフィールドを定義することができる。
つまりフィールドの定義とは
(1)名前、属性、長さによって定義する
(2)指定したポインタから始まるフィールドを定義することができる。
というふたつの方法が可能であるということである。
■ポインタの2つの利用方法
見てきたように
・ポインタとはフィールドの開始位置のことである。
・フィールドからポインタを取得することができるし
ポインタから開始するフィールドを定義することができる。
..次回はRPGにおけるポインタの実際の使い方を例を挙げて解説する。