4
因此,当考虑让我的定义宏工作,我发现了#
和##
宏助手,并用它们来简化我的宏。宏的关键部分将变量设置为包含变量名称的字符串(但不包括变量名称)。作为一个简单的例子,我们来看一个名为SET(X)
的宏,它应该将SET(something)
扩展为something = "pre_something"
。是否有一个宏的前缀和引用C宏参数的一个宏的方法
到目前为止,我发现的唯一方法是使用两个宏,如#define QUOTE(X) #X
和#define SET(X) X = QUOTE(pre_##X)
。但是,使用多个宏看起来过多,并且可能会导致进一步的宏扩展(我认为)出现问题。是否有一种更干净,单线的做同样的事情?