问题描述
我的问题是关于 #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"
如您所见,您可以将所有类型的东西作为参数传递给“类似宏的函数”。
更多信息: