Erreur du compilateur C2009
réutilisation de 'identificateur' de macro formelle
La liste de paramètres formel d’une définition de macro utilise l’identificateur plusieurs fois. Les identificateurs de la liste de paramètres de la macro doivent être uniques.
Exemples
L’exemple suivant génère l’erreur C2009 :
// C2009.cpp
#include <stdio.h>
#define macro1(a,a) (a*a) // C2009
int main()
{
printf_s("%d\n", macro1(2));
}
Résolution possible :
// 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));
}