Sağ tarafta en az bir değer Int64
'a atmanız gerekir. Örneğin, bu her iki XE6 üzerinde mükemmel derlemek: o dökme SağDeğerler herhangi biri olabilir
const
minDriveFreeSpace = Int64(1024) * 1024 * 1024 * 99;
var
minDriveFreeSpace2: Int64;
begin
minDriveFreeSpace2 := Int64(1024)*1024*1024*99;
Not. Örneğin, bu da aynı şekilde çalışır:
const
minDriveFreeSpace = 1024 * 1024 * 1024 * Int64(99);
numaralandırılmış (zayıf olsa da) Delphi language guide belgelenmiştir - vurgu mayın: Genel olarak
, tamsayılar üzerinde aritmetik işlemler bir değeri döndürür 32-bit LongInt'e eşdeğer Tamsayı yazın. İşlemler, yalnızca bir veya daha fazla Int64 işleneni gerçekleştirildiğinde Int64 türünde bir değer döndürür. nedenle, şu kod üretir yanlış sonuçlar:
var
I: Integer;
J: Int64;
...
I := High(Integer);
J := I + 1;
Int64 olarak I dökme bu durumda bir Int64 dönüş değerini almak için:
...
J := Int64(I) + 1;
İlginç! Aynı zamanda David'in işaret ettiği benzer (çoğaltılmış) sorudaki disk spce'ını temsil etmekle de alakalı görünüyor. –