0

操作に使用する形式/精度を決定する際に、式の右側と左側の両方を確認することは、Pascalの設計哲学の一部であると常に考えていました。そのため、Cのような表現とは異なり、

Float_Var = 1/3

Float_Varの値は0.0になり、Pascalは常にこれを正しく取得します。:)

そのため、2つのLongInt(32ビット)を乗算してInt64の結果を取得し、異常な結果が得られていることに気付いたときは、ちょっと驚きました。私はすべてのCを好きにして使用しなければなりませんでした、

Int64_Var := Int64(LongIntVar1) * LongIntVar2

正しく動作させるために。(ところで、これはDelphiの下にあり、さまざまなバージョンがテストされましたが、すべてwin32でした)。

これがDelphi/Pascalの例外的なケースであるかどうか疑問に思っていましたか?または、式の両側の型を使用して操作の実行方法を決定する通常のPascalの方法が当てはまらない例は他にもあります。

4

2 に答える 2

3

「両側」とは、式の型を決定するための割り当てでターゲット変数の型を調べることを意味する場合、いいえ、そうではありませんでした。その点では、Delphi は他の主流のコンパイラと同じように機能します。つまり、式の型は内側から決定されます。

于 2013-03-14T06:15:30.543 に答える