2009-01-20 43 views
-2

我在瀏覽Delphi 2009語言指南。並發現一些奇怪的東西在指令列表(不是編譯器指令)中,我發現了pointermathDelphi和pointermath(文檔中可能存在的bug)

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

我知道這是一個編譯器指令{$ POINTERMATH ON | OFF},但我不知道如何使用這個傢伙。在幫助中沒有額外的信息,所以我嘗試了一些東西,但沒有成功。

procedure Name; pointermath; // gave an error 

因此,有幾種可能:

  • 它尚未實現。
  • 這是幫助中的一個錯誤。
  • 我還未找到合適的使用地方。

我假設它是一個錯誤,(有更多SELED必須密封)。

有沒有人知道這個指令的任何內容?

回答

2

除非Barry Kelly證明我們錯了(他是這方面的權威),我會投票支持文檔錯誤:它是針對'編譯器指令'一章的。

+0

Codegear證實了這一點。 – 2009-01-23 08:09:37

0

我認爲這意味着它可以讓你像C指針一樣做數學運算。截至德爾福2009年,你只能對類型指針進行有限的指針數學運算。

2

POINTERMATH讓你做的東西是這樣的:讓

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

沒有POINTERMATH你: [DCC錯誤] unit.pas(135):E2015操作並不適用於這一運算對象類型

在這意味着你不再需要通過指向Integer的類型指針來將它們增加一個數值。

+1

您誤解了問題 - Gamecat明確提到「在指令列表中(**不是編譯器指令**) – 2009-01-20 15:48:29

1

Codegear已確認它是一個錯誤。