目次ページ  前ページ   次ページ

10. 幾何モデルのデータ構造の概説

10.3 幾何モデルで使うリストセル


10.3.7 C言語はポインタ技法が使えますが…

 コンピュータが最終的に理解する言語はマシン語です。この命令語を生で使うのでは大変な労力ですので、人が理解できる表現方法を使ってプログラム文を作り、それを翻訳して機械語に直す方法を使います。機械語と1対1に対応し、かつ、人も理解できるプログラミング言語がC言語の位置づけです。機械語レベルでは、変数などのアドレスを指定する方法として直接アドレス法間接アドレス法を使い分けます。間接アドレス法とは、変数のアドレスを収めた別の変数(これがポインタ)を参照することで実際のアドレスを知る方法です。このポインタを保存してある場所を知るために、もう一段上のポインタを使う、のような構成を考えると、これが図10.1のようなリスト構造になります。変数のメモリ上の位置(アドレス)は、そのプログラムが実行時にメモリに取り込まれて始めて具体的に決まりますので、変数全体の管理に使う大本のアドレスから数えた、相対的なアドレスを使います。これが配列名と添え字との関係です。プログラミングの段階では、配列名の添え字を使う方が便利です。この数値は、実用的には16ビット整数の範囲で使うことができます。メモリ上の実際のアドレス数値は、プログラムの実装時に決まり、かなり大きな整数を使いますが、その寸法が何バイトを占める整数であるかは、普通のC言語を使う場合では意識する必要がありません。しかし、そのポインタを、表10.1のリストセルの中に組み込むとなると、ポインタの占めるバイト数を知っていなければなりません。そのため、ポインタの整数値を生で取り出して利用することはしません。つまり、C言語でポインタ技法を使うプログラミング技法は、幾何モデリングに使うには単純過ぎるのです。したがって、面倒なように見えますが、元々の配列構造の添え字をポインタに使う方法で幾何モデルのリストセルの仕様を決めます。
2008.10 橋梁&都市PROJECT

前ページ  次ページ