Errore del compilatore C2009
riutilizzo di 'identifier' come parametro formale della macro
L'elenco di parametri formali di una definizione di macro usa più volte l'identificatore. Gli identificatori nell'elenco dei parametri della macro devono essere univoci.
Esempi
L'esempio seguente genera l'errore C2009:
// C2009.cpp
#include <stdio.h>
#define macro1(a,a) (a*a) // C2009
int main()
{
printf_s("%d\n", macro1(2));
}
Possibile soluzione:
// C2009b.cpp
#include <stdio.h>
#define macro2(a) (a*a)
#define macro3(a,b) (a*b)
int main()
{
printf_s("%d\n", macro2(2));
printf_s("%d\n", macro3(2,4));
}