10行で、long型の3次元座標値がPOINT3という型に定義(typedef)されています。でも、その直 後の構造体内部では、x,y,zはそれぞれ別々になっています。せっかく3次元座標値を1つの型と して定義したのですから、それを利用しない手は無いです。 構造体を定義するための予約語structの直後の名前(構造体タグ)は、無くても構いません。こ の構造体タグは、構造体の名前となります。構造体の定義(struct)と、その構造体をtypedefで新 たな型として定義してしまうときには、構造体タグを省略して書くとすっきりしますね。元のリス トの2番目では、
HATCHING型の構造体で、座標値を入れる配列のサイズが、MAXSIZEにより100に決められています。 これは、多分、100角形以上はありえないとの考えで、そのようになっているのでしょう。でも、 構造体の中に大きな配列(それも、普段はほんの一部しか使わないもの)を入れてしまうのはムダ です。座標値配列へのポインタだけを構造体の中に入れて、実際の座標値を入れる配列は、座標の 「数」に応じてmallocなどで動的に領域を確保すべきですね。
|
ナンプレ問題 |