インクリメント時の左辺配列要素の参照回数

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"
を記述すると、内部エラーと表示されます。

報告ということで・・後はお任せします。
返信する