오른쪽에있는 값 하나 이상을 Int64
(으)로 캐스팅해야합니다. 예를 들어,이 두 가지 모두 XE6에서 완벽하게 컴파일됩니다.
const
minDriveFreeSpace = Int64(1024) * 1024 * 1024 * 99;
var
minDriveFreeSpace2: Int64;
begin
minDriveFreeSpace2 := Int64(1024)*1024*1024*99;
캐스팅되는 rvalues 중 하나 일 수 있습니다. 예를 들어,이 똑같이 잘 작동 :
const
minDriveFreeSpace = 1024 * 1024 * 1024 * Int64(99);
이 (오히려 가난하지만)을 Delphi language guide에 설명되어 있습니다 - 중점을 내 : 일반적으로
을, 정수 산술 연산은 값을 반환 Integer는 32 비트 LongInt와 동일합니다. 하나 이상의 Int64 피연산자에서 수행 할 경우에만 Int64 유형의 값을 반환합니다. 따라서, 다음과 같은 코드가 생성하는 잘못된 결과 :
var
I: Integer;
J: Int64;
...
I := High(Integer);
J := I + 1;
가 INT64 나는 캐스팅이 상황에서 Int64를 반환 값을 얻으려면 :
...
J := Int64(I) + 1;
재미있는! 데이비드 (David)가 지적한 유사한 (중복 된) 질문에서 디스크 원점을 나타내는 것과 관련이있는 것 같습니다. –