Integer Vs Long Confusion

前端 未结 7 1108
小鲜肉
小鲜肉 2020-11-27 18:49

I have seen many believe in the following

VBA converts all integer values to type Long

In fact, even the MSDN article says

相关标签:
7条回答
  • 2020-11-27 19:48

    I've spent a lot of time working in the VBA environment and have every reason to believe that the claim in this article is at best, misleading.

    I've never come across a situation where an automatic unexpected conversion is made. Of course, assignment by value to a larger type (such as a Double or Long) would be implicit.

    One specific case where automatic conversion would be a breaking change would be an assignment to a Variant type. Without a conversion, the type would be VT_I2, with conversion VT_I4.

    Passing an Integer type ByRef to a function expecting a Long emits a type mismatch in Office 2013.

    I suspect they are referring to the internal storage of the Integer: it's very likely that they are not aligned on 16 bit words in memory (cf. a short structure member in C / C++). They are probably talking about that.

    0 讨论(0)
提交回复
热议问题