Pregunta

Estaba navegando por la guía de idiomas de Delphi 2009. Y encontré algo extraño. En la lista de directivas (no directivas del compilador) encontré pointermath .

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

Sé que es una directiva del compilador {$ POINTERMATH ON | OFF} pero no sabía cómo usar a este tipo. No hay información adicional en la Ayuda, así que probé algo pero sin éxito.

procedure Name; pointermath; // gave an error

Entonces hay varias posibilidades:

  • aún no está implementado.
  • es un error en la ayuda.
  • No he encontrado el lugar correcto para usarlo todavía.

Supongo que es un error, (hay más sellados deben estar sellados ).

¿Alguien sabe algo sobre esta directiva?

¿Fue útil?

Solución

A menos que Barry Kelly demuestre que estamos equivocados (él es la autoridad en eso), votaría por una documentación error: estaba destinado al capítulo ' compilador directivas'.

Otros consejos

Pointermath te permite hacer cosas como esta:

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

Sin puntero matemático, obtienes: [Error DCC] unit.pas (135): E2015 Operador no aplicable a este tipo de operando

En esencia, esto significa que ya no tiene que escribir punteros en Integer para incrementarlos en un valor numérico.

Codegear ha confirmado que es un error.

Creo que lo que significa es que te permite hacer C como matemáticas de puntero. Hasta Delphi 2009, solo podía hacer cálculos de puntero limitados en punteros escritos.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top