aviso do compilador (nível 1) C4002
Mensagem de erro
número excessivo de parâmetros real de macro 'identificador'
O número de parâmetros real na macro excede o número de parâmetros formais na definição de macro.A coleta de pré-processador parâmetros extras, mas ignora durante a expansão de macro.
C4002 pode ocorrer ao usar incorretamente Macros Variadic.
O exemplo a seguir gera C4002:
// C4002.cpp
// compile with: /W1
#define test(a) (a)
int main() {
int a = 1;
int b = 2;
a = test(a,b); // C4002
// try..
a = test(a);
}
Este erro também pode ser gerado sistema autônomo resultado do trabalho de conformidade de compilador que foi concluído para o Visual Studio .NET 2003: vírgulas adicionais na macro não é mais aceito.
O compilador não aceitará mais extras vírgulas em uma macro.Para código ser válido no Visual Studio .NET 2003 e o Visual Studio .NET versões do Visual C++, remova as vírgulas extras.
See Resumo das alterações de quebras de compilador-time para obter mais informações.
// C4002b.cpp
// compile with: /W1
#define F(x,y)
int main()
{
F(2,,,,,,3,,,,,,) // C4002
// Try the following line instead:
// F(2,3)
}