2012-03-01 2 views
1
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"); 
} 
+1

В чем вопрос? –

+1

Нет супа для вас! – synthesizerpatel

+0

Если какой-либо ответ ответил на ваш вопрос, пожалуйста, «примите» его, нажав «v» рядом с ним (-; –

ответ

3

Определить (если вы на самом деле писать подобное) есть ошибка с тем же именем для арг

должен быть

#define FUN(ArgPos1, ArgPos2, ArgPos3) fun(ArgPos1, ArgPos2, ArgPos3) 
2

Вы указали как enum, так и параметры макроса.

Понадобится:

#define FUN(x,y,z) fun(x,y,z) 
2

проблема не с перечислениями, но с макро:

#define FUN(x,y,z) fun(x,y,z) 
Смежные вопросы