문제

Delphi 2009 언어 가이드를 탐색하고있었습니다. 그리고 이상한 것을 발견했습니다. 지시문 목록 (컴파일러 지침이 아님)에서 찾았습니다. PointerMath.

RAD-Studio
  Reference
    Delphi Reference
      Delphi Language Guide
        Fundamental Syntactic Elements
          Fundamental Syntactic Elements
            [Directives]

나는 그것이 컴파일러 지침 {$ pointermath on | off}라는 것을 알고 있지만이 사람을 사용하는 방법을 몰랐습니다. 도움말에는 추가 정보가 없으므로 약간의 무언가를 시도했지만 성공하지 못했습니다.

procedure Name; pointermath; // gave an error

따라서 몇 가지 가능성이 있습니다.

  • 아직 구현되지 않았습니다.
  • 도움의 버그입니다.
  • 아직 사용할 수있는 올바른 장소를 찾지 못했습니다.

나는 그것이 버그라고 생각합니다. seled 해야합니다 봉인).

이 지침에 대해 아는 사람이 있습니까?

도움이 되었습니까?

해결책

하지 않는 한 배리 켈리 우리가 틀렸다는 것을 증명합니다 (그는 그것에 대한 권위자), 나는 문서 버그에 투표 할 것입니다 : 그것은 ''를위한 것입니다.컴파일러 지침의 장.

다른 팁

PointerMath는 다음과 같은 작업을 수행 할 수 있습니다.

{$POINTERMATH ON}
procedure Test;
var
  temp: PWord;
begin
  temp := anAddress;
  temp := temp + 16;
  // temp now points to anAddress+$20 (2*16)
end;

PointerMath가 없으면 : [DCC Error] init.pas (135) : E2015이 피연산자 유형에 적용 할 수없는 E2015 운영자

본질적으로 이것은 더 이상 수치 값으로 그들을 증가시키기 위해 정수를 위해 포인터를 타입 캐스트 할 필요가 없다는 것을 의미합니다.

CodeGear는 버그임을 확인했습니다.

나는 그것이 의미하는 바는 당신이 포인터 수학과 같은 C를 할 수 있다는 것입니다. Delphi 2009까지, 당신은 입력 된 포인터에서 제한된 포인터 수학 만 할 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top