C++ 有没有办法使C宏关键字不可知?

C++ 有没有办法使C宏关键字不可知?,c++,c,macros,C++,C,Macros,有没有办法在宏中连接关键字并获取 C以更动态的方式进行操作,如: #define macro(fun,ction,var,iable) function(variable) 我知道这种东西在其他语言中也存在 可以使用##在宏中包含名称 ,虽然C语言或C语言中有“代码预处理”,但在使用C之前,所有C++语言都可以使用C语言或C++来生成关键字,甚至使用它生成任何预处理关键字,都会使预处理器崩溃。 因此,通常情况下,如果直接输入时未编译,则由预处理器生成时也不会编译。对其使用有一些注意事项(例如,

有没有办法在宏中连接关键字并获取
C以更动态的方式进行操作,如:

#define macro(fun,ction,var,iable) function(variable)
我知道这种东西在其他语言中也存在

可以使用##在宏中包含名称


<米迦勒>,虽然C语言或C语言中有“代码预处理”,但在使用C之前,所有C++语言都可以使用C语言或C++来生成关键字,甚至使用它生成任何预处理关键字,都会使预处理器崩溃。
因此,通常情况下,如果直接输入时未编译,则由预处理器生成时也不会编译。

对其使用有一些注意事项(例如,您必须跳过一些环以连接其他宏扩展的结果),但GCC文档讨论了基本形式:


你应该至少添加一个简短的解释,而不仅仅是在房间里添加一个链接。我的初衷是编辑它以包括一个例子,但大约有四个不同的人击败了我,所以我没有浪费时间(我也不想让自己看起来像是在抄袭他们的答案)