モジュールをクラスのように使って、オブジェクト指向でやると、
きっと配列に詰めたくなると思って、その練習。
---
; モジュールの配列
; モジュール
#module modColor nVal
#modinit int p_nVal
nVal = p_nVal
return
#modcfunc GetVal
return nVal
#global
; メイン
; モジュール型の配列を定義(3要素)
dimtype naRGB, 5, 3
; 値を設定
; 実行エラー25になる
; newmod naRGB(0), modColor, 200 ; newmodでは、配列要素をしていしてはいけないらしい
; newmod naRGB(1), modColor, 240
; newmod naRGB(2), modColor, 200
newmod modRGB0, modColor, 200
naRGB(0) = modRGB0
newmod modRGB1, modColor, 240
naRGB(1) = modRGB1
newmod modRGB2, modColor, 200
naRGB(2) = modRGB2
; 値を取得
color GetVal(naRGB(0)), GetVal(naRGB(1)), GetVal(naRGB(2))
; テスト
boxf
stop
---
dimtypeは、型を指定した配列定義。
intでもdoubleでも配列を作れるのだけど、今回はモジュール。
モジュールは5です。
<脱線>
ちなみに、5を求める関数も用意されています。
vartype。
これに、すでに作った変数を与えると、5とか、intだったら4だとか、返ってきます。
</脱線>
あと手間取ったのが、
newmodに直接配列要素を指定しちゃいけないということ。
コンパイルはOKで、実行時のエラーが出ました。
25 "配列の要素書式が間違っています"
ググったら公式HPの説明ページがヒットしました。
http://www.fujidig.com/ohdl/doclib/error.htm
配列要素の書き方が間違っている場合や、配列要素を書いては
いけない場所に書かれている時に表示されます。
とのこと。
後者の場合なんだろうな。
ということで、配列でない変数で作ってから、配列要素へ移して解決。