Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
för många argument för funktionsliknande makroanrop "identifierare"
Anmärkningar
Antalet faktiska parametrar i makrot överskrider antalet formella parametrar i makrodefinitionen. Förprocessorn samlar in de extra parametrarna men ignorerar dem under makroexpansionen.
C4002 kan inträffa vid felaktig användning av variadic makron.
Example
I följande exempel genereras 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);
}
Det här felet kan också genereras som ett resultat av kompilatorns efterlevnadsarbete som utfördes för Visual Studio .NET 2003: extra kommatecken i makrot accepteras inte längre.
Kompilatorn accepterar inte längre extra kommatecken i ett makro. Ta bort extra kommatecken för att koden ska vara giltig i både Visual Studio .NET 2003- och Visual Studio .NET-versionerna av Visual C++.
// C4002b.cpp
// compile with: /W1
#define F(x,y)
int main()
{
F(2,,,,,,3,,,,,,) // C4002
// Try the following line instead:
// F(2,3)
}