就拿这个错误的A来讲:
如果按照要求,我们应该这样写程序:
Dim S as Long
S=16384*2
而你的代码被分为如下多个片段来执行:
首先在内存中开辟一个4字节的空间给变量S来保存它的数据
然后执行S=16384*2,
而执行16384*2这句要分为两步,步骤1位计算16384*2,步骤2位将结果保存到S的内存占用空间
而执行16384*2又要分为3部,判定16384应该占用多大内存,判定2应该占用多大内存
这样得出结论为16384占用2个字节(即整型变量空间),2占用1个字节(即字节变量空间)
所以,16384*2的结果会先放入一个2字节的整型变量空间,然后再给S。
因此就会产生溢出的错误。
Private Sub Form_Load()
Dim S As Long
S = 16384 * 2
Debug.Print S
S = 4 * 0.5 * 16384
Debug.Print S
S = 190 ^ 2
Debug.Print S
S = 32768 * 2
Debug.Print S
End Sub