プチコン3号 SmileBASIC コミュニティプレイ日記ビニールぶくろのそら KD.zip2016/09/07 21:24:35自作命令とそれに関するグローバル変数を纏めて記述していると、変数の宣言がまばらになることがある。そうすると、とある変数が宣言以外の処理を宣言より先に行ってしまい、変数の型が可笑しくなることがある みたいなんだけど、イマイチ理由が分からない。3そうだね 9返信プレイ済み2017/11/03 11:45:19に取得
プチコン3号 SmileBASIC コミュニティ返信[1]親投稿ビニールぶくろのそら KD.zip2016/9/7 21:32というわけで、簡略化して考えてみる。 多分こんな感じ。 LEN(ZUNDOKO%)でタイプミスマッチ0そうだね プレイ済み2017/11/03 11:45:19に取得
プチコン3号 SmileBASIC コミュニティ返信[2]親投稿ΖΕΧ ZEX2562016/9/7 21:42変数の宣言は使用するより 上で 宣言しなければならない。 使用するより 先に ではないので注意。 そこがプチコンの特殊なところ。2そうだね プレイ済み2017/11/03 11:45:19に取得
プチコン3号 SmileBASIC コミュニティ返信[3]親投稿ΖΕΧ ZEX2562016/9/7 21:56一応指摘しておくと2行目の変数ZUNDOKO%のこと0そうだね プレイ済み2017/11/03 11:45:19に取得
プチコン3号 SmileBASIC コミュニティ返信[4]親投稿ビニールぶくろのそら KD.zip2016/9/7 22:11実際にプチコンでコンパイルするときは、ルーチンとかでの移動関係なしに上から調べるからでしたっけ だとしても、先程の例で実行すると、エラー吐くのはAが呼び出されてからなんですよね。こういうのってコンパイル時にエラー吐くものでは無いのですか? 仕様を把握する前に、先にエラー回避しつつ、小分けされた自作命令フォルダを書くように編集。1そうだね プレイ済み2017/11/03 11:45:19に取得
プチコン3号 SmileBASIC コミュニティ返信[5]親投稿りゅうまご ryumago2016/9/8 5:01OPTION STRICTつけてないから 変数を用意してみたもののプログラマの予定していた型とあわなくてエラーになったのかもしれません0そうだね プレイ済み2017/11/03 11:45:19に取得
プチコン3号 SmileBASIC コミュニティ返信[6]親投稿myu314 myu3142016/9/8 8:30半分くらいはOPTION STRICTで解決するけど、もう一点ハマりやすい仕様があって。 配列定義は実行された時に初めて領域が確保されます。それまでは要素数0の配列扱い。で、要素数が0の配列は何故かLENできないので下のプログラムはタイプミスマッチ…このエラーはどうなのかって感はあるけど。 FUNC VAR X[10] DEF FUNC ?LEN(X) END ライブラリとか作る場合、この仕様にハマりがち。 サブルーチンか初期化関数を作って使う前に初期化してもらうのが基本。2そうだね プレイ済み2017/11/03 11:45:19に取得
プチコン3号 SmileBASIC コミュニティ返信[7]親投稿あまさと しおん ShionAmasato2016/9/8 14:35おかげでDIM ITEM[I_MAX]みたいに変数で要素数が決められるんだけどね… 名前の登録(?)は流れ無視の行数順で 要素数の決定は実際の流れ通り えらくややこしい仕様になったもんだね。0そうだね プレイ済み2017/11/03 11:45:19に取得
プチコン3号 SmileBASIC コミュニティ返信[8]親投稿ビニールぶくろのそら KD.zip2016/9/8 20:27私がしょっちゅう引っ掛かってたのはそのタイプミスマッチのやつですね……多分 便利なのか不便なのか不明ですけど、仕様についてはなんとなく分かってきた気がします。 ありがとうごさいました。1そうだね プレイ済み2017/11/03 11:45:19に取得
プチコン3号 SmileBASIC コミュニティ返信[9]親投稿myu314 myu3142016/9/8 23:49ごめん!ちょっと嘘つきました。 VAR X[0]:?LEN(X)はエラーにならないですね、なんか間違えて覚えてました。宣言のとこ通るまではきちんと初期化されないということには変りないので、エラー原因とかは上で書いた通りですが。 あと宣言してるだけで確保しちゃうとメモリ使用量の面で問題がでそうだから、仕様としては妥当なとこだと思いますよ:) 0そうだね プレイ済み2017/11/03 11:45:19に取得