如何定义这些令牌字符串

问题描述

我的问题是关于 #define 指令。 在 documentation 中,我们有:

语法

#define identifier token-string
#define identifier ( identifier,...,identifier ) token-string

备注中是这样写的:

token-string 参数由一系列标记组成,例如关键字、常量或完整语句。

我的问题是如何在 C 中定义关键字、常量、完整的语句、指令和命令。

我已经对这些是什么有了“经验”的想法,但我无法用语言来定义它们。

如果你们能帮助我,我将不胜感激,如果可能,请提供一些示例以便更好地理解。

解决方法

测试一下:

#define macro(A,B,C) A; B; C;
macro(int i=0,int x = i + 1,printf("%d\n",x));
//expands to: int i=0; int x = i + 1; printf("%d\n",x);

#define macro(Type,Id) Type##Id
macro(int,array) //expands to: intarray

#define macro(X) #X
macro(x + y) //expands to: "x + y"

如您所见,您可以将所有类型的东西作为参数传递给“类似宏的函数”。

更多信息: