ActiveBasicのバグと思われる不具合を発見された方は、こちらから知らせていただけると助かります。
-
山本
- Site Admin
- 記事: 535
- 登録日時: 2005年5月30日(月) 15:08
#1
投稿記事
by 山本 »
質問版で気づき辛い問題を発見された方がおりましたので、私のほうから詳細をご報告させていただきます。
コード: 全て選択
Dim i=1 As Byte,k[1] As Byte
k[Command()]++
debug
Function Command() As Byte
Command=i
If i>0 Then i=0
End Function
このようなコードを実行すると、Command関数が2回呼び出されてしまう問題について、修正を行います。
n++
通常は上記のようなコードは、
n=n+1
と同等の意味を持ちますが、今回の問題に関しては、
k[Command()]++
と
k[Command()]=k[Command()]+1
は等しいとはいえません。プログラムの表記通り、配列要素の参照が一度しか記述されておりませんので、呼び出し回数も一度で済むように改良を行おうと思います。
-
Kobu
#2
投稿記事
by Kobu »
自分が発見したインクリメントによるバグ(?)が修正されたのは、ありがとうございます。
ただ、修正後のABにおいて文字列インクリメント
コード: 全て選択
Dim S As String
S+="a"
を記述すると、内部エラーと表示されます。
報告ということで・・後はお任せします。