是否可以像这样创建条件定义:

{$if typeof(TNode) = record}
type PNode = ^TNode;
{$else}
type PNode = TNode;
{$end}


我为什么要这个?
对于特定问题,我在使用classrecord之间交替进行。
由于速度原因,我想使用记录,但是为了方便起见,我也想使用class

因此,我要在两者之间切换。
显然,我可以添加一个{$define}语句,但是能够自动执行它会很好。

最佳答案

尽管我个人建议使用一般的DEFINE方法,但是在记录的大小不特定的情况下,您可能会成功:

{$if Sizeof(TNode) <> Sizeof(Pointer)}
type PNode = ^TNode;
{$else}
type PNode = TNode;
{$end}


好的,我知道那是肮脏的编程,但是您首先要求它。

10-05 22:15