お世話になっております、Drakujiです。
自作命令や関数で処理の中で引数を使用すると、時折
エラー23「変数名が指定されていません」が発生します。
原因がいまひとつよくわかっておりませんが、
自作命令や関数内部で引数名をうまく扱えないときがあるようです。
この問題のからくりについてもしご存じの方がいらっしゃいましたら教えてください。
暫定対処として
一旦命令や関数内部のみで使えるローカル変数を用意して
そこに引数を代入し、ローカル変数から参照するようにしています。
参考までに、以下、サンプルソースです。
//ASCIIコード表をもとに大文字のAを0として以降アルファベットを順番に値を返す関数 mes GetAdrToNum("B") #module #if 1 //←ここで検証を切り替えてください //直接引数をpeekに指定するとエラーになる #defcfunc GetAdrToNum str adr ;mes vartype(adr) //引数の型を調べてみようとしてもダメでした・・・ if peek(adr,0) >=65 && peek(adr,0) <= 80{ //エラー箇所:peek(adr,0) return peek(adr,0) - 65 } return -1 #else //エラーにならない方法 #defcfunc GetAdrToNum str adr, local _adr _adr = adr //とりあえずローカル変数に代入して問題を回避する if peek(_adr,0) >=65 && peek(_adr,0) <= 80{ return peek(_adr,0) - 65 } return -1 #endif #global
以上。