我在C中编写代码并在GCC中编译。正如tittle所说,我如何为同一个#define
语句分配两个值。我不是故意将它们分配为枚举类型或类似东西,而是以这种方式。假设我有一个宏SET_SOMETHING(num1,num2)
。如何使用 ONE num1,num2
语句替换#define
,例如:SOME_NUMBERS
。因此,当我“调用”(不知道我是否正确地说调用)宏时,它看起来像这样:SET_SOMETHING(SOME_NUMBERS)
。我已经尝试过显而易见的#define SOME_NUMBERS 1,5
但是因为某种原因不能工作,为什么?定义只是替换代码吗?
如果可以,那么我将如何从定义SOME_NUMBERS
中仅提取第一个或第二个数字?
感谢您的帮助!
答案 0 :(得分:1)
当您的宏解析SOME_NUMBERS
时,它已经尝试将两个参数分开。
您必须连续使用两个宏
#define INNER_MACRO(A, B) dosomething(A, B)
#define OUTER_MACRO(...) INNER_MACRO(__VA_ARGS__)