【发布时间】:2014-08-24 06:16:12
【问题描述】:
如何在 Delphi 中使用宏?这个功能在FPC 中已经有很长一段时间了。可以通过构建前或构建后事件来完成吗?
例子:
{$define sum:=a:=a+b;}
【问题讨论】:
-
FPC 中的宏用于一些简单的情况(例如简单的 {$ifdef mswindows} stdcall{$else}cdecl{$endif} 宏。它们不适用于一般编程,这就是它们的原因不可参数化。对于普通 C 使用宏的情况,泛型和内联确实是合适的解决方案。
-
您正在考虑条件符号。
{$DEFINE}在 FreePascal 中比在 Delphi 中更灵活。 FreePascal 支持定义可以在编译时替换为代码的整个表达式,类似于 C 预处理器宏。阅读 FreePascal 文档的Section 2.2。 -
@RemyLebeau 我在想
{$Macro ON}inFPC -
当使用
{$MACRO ON}时,{$DEFINE}可以定义表达式,而不仅仅是符号名称。这样的扩展宏不是“用于简单情况”,而是“用于一般编程”。这就是我不同意您之前的评论的原因。 -
@RemyLebeau 是的,我希望这是在 Delphi 中。很有用。
标签: delphi delphi-xe6