Delphi и pointermath (возможная ошибка в документации) - PullRequest
0 голосов
/ 20 января 2009

Я просматривал руководство по языку 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

Так что есть несколько возможностей:

  • это еще не реализовано.
  • это ошибка в справке.
  • Я еще не нашел подходящего места для его использования.

Я предполагаю, что это ошибка, (есть еще продано должно быть запечатано ).

Кто-нибудь знает что-нибудь об этой директиве?

Ответы [ 4 ]

2 голосов
/ 20 января 2009

Pointermath позволяет вам делать такие вещи:

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

Без указателя на вас вы получите: [Ошибка DCC] unit.pas (135): E2015 Оператор не применим к этому типу операнда

По сути это означает, что вам больше не нужно указывать указатели на Integer, чтобы увеличивать их на числовое значение.

2 голосов
/ 21 января 2009

Если Барри Келли не докажет, что мы неправы (он является авторитетом в этом), я бы проголосовал за ошибку документации: она предназначалась для главы " compilers". 1005 *

1 голос
/ 23 января 2009

Codegear подтвердил, что это ошибка.

0 голосов
/ 20 января 2009

Я думаю, что это означает, что это позволяет вам делать C как математика указателя. Вплоть до Delphi 2009 вы могли выполнять ограниченную математику указателей только для типизированных указателей.

...