宏
GS 支持类似C语言的宏定义和宏替换。
宏定义
| 语法 | |
|---|---|
| 1 | #define 标识符 替换序列可选 |
| 2 | #define 标识符 ( 宏的形参列表 ) 替换序列可选 |
#define 是一条预处理指令,能够将一个标识符定义为宏。编译器在后续代码中如果遇到了这个标识符,将按照 替换规则 对源码执行文本替换。
GS 支持两种宏,即如 语法(1) 所示的对象宏和如 语法(2) 所示的仿函数宏。
仿函数宏的形参列表
对于 语法(2) 中的仿函数宏,可以在宏的形参列表中定义零到若干项形参,并在形参列表的末尾允许以 ... 为结尾,表示此宏接受多余参数作为变长参数。
#define EXAMPLE_MACRO(a, b, ...) writeln(fmt, __VA_ARGS__)
仿函数宏的形参应当是一个标识符;形参与形参之间,以及形参与 ... 之间使用 , 作为分隔符。