我想在帕斯卡(freepascal)中定义的东西。 在C++中,你可以通过变量定义的宏是这样的:传递参数在帕斯卡定义
#define REP(i,k) for(int i=0; i<k; i++)
你怎么能在帕斯卡做呢?
我在第一行添加了{$MACRO ON}
命令,因此它可以运行正常定义而没有像{$define lala:='hello world'}
这样的错误。
但是,当我尝试{define lala(i):=i}
程序出现错误。
如何在Pascal中传递可变参数?
我想在帕斯卡(freepascal)中定义的东西。 在C++中,你可以通过变量定义的宏是这样的:传递参数在帕斯卡定义
#define REP(i,k) for(int i=0; i<k; i++)
你怎么能在帕斯卡做呢?
我在第一行添加了{$MACRO ON}
命令,因此它可以运行正常定义而没有像{$define lala:='hello world'}
这样的错误。
但是,当我尝试{define lala(i):=i}
程序出现错误。
如何在Pascal中传递可变参数?
使用外部预处理器,并在结果中使用Pascal编译器之前在构建系统中执行它。
FPC宏系统不适用于元编程,而是用于在头文件和紧凑型启用/禁用逻辑中调用约定宏(如home-brewn声明和其他调试日志代码),并且不支持参数化。
非卫生宏从根本上与Pascal单元系统不兼容,卫生宏由内联函数/程序覆盖。
感谢您的回答。我只想用pascal编写一些模板,就像C++ hahaha一样。那么我只会使用函数和过程。 –
FPC具有泛型。 –
你不想这样做。在C++中这是一个糟糕的主意。不要复制不好的想法。 –
根据“程序员指南”第1.2.48节的内容:“在{$ MACRO ON}状态下,编译器允许使用C型(尽管没有详细说明)宏。” 宏“。请注意“不太精细”部分。我不认为参数是支持的。 – tonypdmtr