在 pascal 定义中传递参数

3 macros preprocessor pascal freepascal

我试图用帕斯卡(freepascal)定义一些东西。与在 C++ 中一样,您可以像这样传递变量定义宏:

#define REP(i,k) for(int i=0; i<k; i++)
Run Code Online (Sandbox Code Playgroud)

你怎么能用帕斯卡做到这一点?

我在第一行添加了{$MACRO ON}命令,因此它可以运行正常的定义,而不会出现类似{$define lala:='hello world'}.

但是当我尝试{define lala(i):=i}该程序时出现错误。

如何在 Pascal 定义中传递变量参数?

Mar*_*ort 5

使用外部预处理器,并在对结果使用 Pascal 编译器之前在构建系统中执行它。

FPC 宏系统不适用于元编程,而是用于调用标头中的约定宏和紧凑的启用/禁用逻辑(如自制断言和其他调试日志记录代码),并且不支持参数化。

非卫生宏从根本上与帕斯卡单位系统不兼容,卫生宏由内联函数/过程覆盖。