Delphi und POINTERMATH (mögliche Fehler in der Dokumentation)
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?
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.