我一直认为这是 Pascal 设计理念的一部分,即在决定用于操作的格式/精度时,它会同时查看表达式的右侧和左侧。因此,与 C 中的表达式不同,
Float_Var = 1/3
结果 Float_Var 的值为 0.0,Pascal 总是能正确处理这些内容。:)
因此,当我将两个 LongInts(32 位)相乘得到一个 Int64 结果并发现我得到异常结果时,我有点惊讶。我必须得到所有的 C 喜欢和使用,
Int64_Var := Int64(LongIntVar1) * LongIntVar2
使其正常工作。(顺便说一句。这是在Delphi下,测试了各种版本,但都是win32)。
我只是想知道这是否是 Delphi/Pascal 中的一个例外情况?或者是否还有其他示例,通常的 Pascal 方式(使用表达式两侧的类型来决定如何执行操作)不成立。