Frage

Ich war das Delphi 2009 Sprachführer durchsuchen. Und fand etwas seltsam. In der Liste der Richtlinien (nicht Direktiven Compiler) fand ich POINTERMATH .

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

Ich weiß, es ist eine Compiler-Direktive {$ POINTERMATH ON | OFF} aber ich weiß nicht, wie dieser Kerl zu verwenden. Es gibt keine zusätzliche Informationen in der Hilfe so habe ich versucht, ein bisschen etwas, aber ohne Erfolg.

procedure Name; pointermath; // gave an error

So gibt es mehrere Möglichkeiten:

  • ist es noch nicht implementiert.
  • es ist ein Fehler in der Hilfe.
  • Ich habe nicht an die richtige Stelle verwenden es noch nicht gefunden.

Ich nehme an, es ist ein Bug, (es gibt mehr Seled muss versiegelt ).

Weiß jemand etwas über diese Richtlinie?

War es hilfreich?

Lösung

Es sei denn, Barry Kelly uns falsch beweist (er ist die Behörde an, dass), würde ich für eine Dokumentation stimmen Fehler:. es wurde für das gemeint ' Compiler Richtlinien' Kapitel

Andere Tipps

POINTERMATH können Sie Dinge tun, wie folgt:

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

Ohne POINTERMATH auf Sie erhalten: [DCC Error] unit.PAS (135): E2015 Operator nicht anwendbar auf diese Operandtyp

Im Wesentlichen bedeutet dies, Sie nicht mehr Typumwandlung Zeiger müssen Integer sie durch einen numerischen Wert zu erhöhen.

CodeGear hat bestätigt, dass es ein Fehler ist.

Ich denke, was es bedeutet, ist es Ihnen erlaubt, C wie Zeiger Mathematik zu tun. Bis zu Delphi 2009 können Sie nur tun begrenzte Zeiger Mathematik für typisierte Zeiger.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top