假设我们有这样的代码:
#define SOME_MACRO(arg) /*macro body*/
int main()
{
SOME_MACRO(a = 1);
}
是否可以在c预处理器中分隔一个参数中传递的标记?
我的意思是可以获得',' =',' 1'在宏体中作为单独的令牌?
如果没有一般的方法可以在这种特殊情况下使用' a = 1'作为获得' a'作为一个单独的标记,以便我可以使用它'宏体'?
答案 0 :(得分:2)
不,除非宏参数列表以逗号分隔,否则不可能。你必须这样做
SOME_MACRO(a, =, b);
或以其他方式a = b
最终作为单个预处理器令牌。