2009-12-12 49 views
2

德尔福7有宏预处理器吗?德尔福7宏预处理器支持

有没有内置的,所以也许有可能使用第三方或其他语言预处理器(如c预处理器)。

如果有一个,如何设置它为Delphi 7?

我试图做函数内联(速度)。宏预处理器似乎是德尔福唯一简单的选择。

感谢, 埃贡

回答

4

在编译代码之前,您始终可以在代码上运行外部宏处理器,例如m4甚至(shudder)cpp。然而,我不会推荐这个 - 根据我的经验,内联的好处(这是你似乎想要做的)的好处很小,并且可以通过导致代码大小增加的减速来抵消。

+0

这是值得的,但只适用于使用较低级别类型的短叶方法。 (IOW不自动)。这对基于指针的迭代器等非常有用。一旦任何程序被调用,加速消失 – 2009-12-13 10:44:06

+0

我终于用m4。它似乎有最独立的语法。小功能的速度可以达到10倍。例如一个简单的函数,如PointInRect。 – Egon 2009-12-14 21:39:39

0

我没有听说在Delphi 7任何第三方宏,但版本的2007+具有自动内联,如果这是一个选项。

+0

D2005已经支持内联 – 2009-12-13 10:40:36

2

以下是我用m4

// uses lookup for counting bits 
function PopCount(const Number: Cardinal): Byte; 
begin 
    Result := WordBitCount[Number and $FFFF] + WordBitCount[Number shr 16]; 
end; 
{ M4 macro 
define(PopCount, (WordBitCount[[email protected] and $FFFF] + WordBitCount[[email protected] shr 16])) 
} 

它仍然很容易编译,但可以用m4被加快。

+0

我喜欢你的解决方案可以在没有运行预处理器的情况下编译:) – Sebastian 2014-01-30 14:47:30