enum ArgPos
{
P1 = 1,
P2 = 2,
P3 = 3
};
void fun(int, int, int);
#define FUN(ArgPos, ArgPos, ArgPos) fun(ArgPos, ArgPos, ArgPos)
int main(void)
{
FUN(P1, P2, P3);
return 0;
}
void fun(int a, int b, int c)
{
printf("fun");
}
答案 0 :(得分:3)
define(如果你真的这样写的话)使用args
的同名错误应该是
#define FUN(ArgPos1, ArgPos2, ArgPos3) fun(ArgPos1, ArgPos2, ArgPos3)
答案 1 :(得分:2)
您将enum
和宏参数命名为相同。
你需要:
#define FUN(x,y,z) fun(x,y,z)
答案 2 :(得分:2)
问题不在于枚举,而在于您的宏:
#define FUN(x,y,z) fun(x,y,z)