Question

Je parcourais le guide des langues de Delphi 2009. Et trouvé quelque chose d'étrange. Dans la liste des directives (et non des directives de compilation), j'ai trouvé pointermath .

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

Je sais que c'est une directive de compilation {$ POINTERMATH ON | OFF} mais je ne savais pas comment utiliser ce type. Il n’ya pas d’informations supplémentaires dans l’aide, j’ai donc essayé un petit quelque chose mais sans succès.

procedure Name; pointermath; // gave an error

Il existe donc plusieurs possibilités:

  • il n'est pas encore implémenté.
  • c'est un bug dans l'aide.
  • Je n'ai pas encore trouvé le bon endroit pour l'utiliser.

Je suppose que c'est un bug (il y a plus de séléctionnés doivent être scellés ).

Quelqu'un sait-il quelque chose à propos de cette directive?

Était-ce utile?

La solution

Sauf si Barry Kelly nous prouve le contraire (il est l'autorité en la matière), je voterais pour une documentation. bug: il était destiné au chapitre "Directives du compilateur ".

Autres conseils

Pointermath vous permet de faire des choses comme ceci:

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

Sans pointeur, vous obtenez: [Erreur DCC] unit.pas (135): Opérateur E2015 non applicable à ce type d'opérande

En substance, cela signifie que vous n’avez plus besoin de transtyper les pointeurs sur Integer pour les incrémenter d’une valeur numérique.

Codegear a confirmé qu'il s'agissait d'un bogue.

Je pense que cela signifie que cela vous permet de faire du C comme des maths au pointeur. Jusqu'en Delphi 2009, vous ne pouviez utiliser que des mathématiques de pointeur limitées sur les pointeurs typés.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top