by konisi » 2008年9月25日(木) 23:30
空白を含む名前を変数名として使えるようです。
AB313,424,AB5CP5で確認。
AB262でもエラーは出ませんでした。
コード: 全て選択
Dim a b c As Long,x y z As Long
x y z=a b c
まぁ次のようなコードを書いて遊べるのでこれはこれで面白いのですが。
コード: 全て選択
const a number=1
Dim b As Long
b=a number
コード: 全て選択
Sub asm(a As Long,b As Long)
End Sub
const add eax =1
const edx =2
asm(add eax,edx)
p.s. [ここをクリックすると内容が表示されます] [ここをクリックすると非表示にします]次は実行時に落ちる
コード: 全て選択
Sub test(ByRef a As Long)
a=a+1
End Sub
Dim ByVal eax As Long
Dim eax As Long
test(ByVal eax)
色々弄った結果、aをCで言う所の*aとして扱ってるのに引数として0とかを渡してるのが原因だと判明。
次のようにすると異常停止はしないようだ。(非常にトリッキーな動作をするが・・・。)
コード: 全て選択
#prompt
Sub test(ByRef a As Long)
a=a+1
End Sub
Sub cpy(ByRef dst As Long,ByRef src As Long)
dst=src
End Sub
Dim ByVal eax As Long
Dim eax As Long
eax=VarPtr(ByVal eax)
test(ByVal eax)
Dim b As Long
cpy(b,ByVal eax)
Print b
Print eax
空白を含む名前を変数名として使えるようです。
AB313,424,AB5CP5で確認。
AB262でもエラーは出ませんでした。[code]Dim a b c As Long,x y z As Long
x y z=a b c[/code]
まぁ次のようなコードを書いて遊べるのでこれはこれで面白いのですが。[code]const a number=1
Dim b As Long
b=a number[/code][code]Sub asm(a As Long,b As Long)
End Sub
const add eax =1
const edx =2
asm(add eax,edx)[/code]
[hide=p.s.]次は実行時に落ちる[code]Sub test(ByRef a As Long)
a=a+1
End Sub
Dim ByVal eax As Long
Dim eax As Long
test(ByVal eax)[/code]色々弄った結果、aをCで言う所の*aとして扱ってるのに引数として0とかを渡してるのが原因だと判明。
次のようにすると異常停止はしないようだ。(非常にトリッキーな動作をするが・・・。)[code]#prompt
Sub test(ByRef a As Long)
a=a+1
End Sub
Sub cpy(ByRef dst As Long,ByRef src As Long)
dst=src
End Sub
Dim ByVal eax As Long
Dim eax As Long
eax=VarPtr(ByVal eax)
test(ByVal eax)
Dim b As Long
cpy(b,ByVal eax)
Print b
Print eax[/code][/hide]