Erreur du compilateur C2004
Mise à jour : novembre 2007
Message d'erreur
attendu 'defined(id)'
expected 'defined(id)'
Un identificateur doit apparaître dans les parenthèses suivant le mot clé du préprocesseur.
Cette erreur peut également être due à la mise à conformité du compilateur pour Visual Studio .NET 2003 : parenthèses absentes dans la directive du préprocesseur. Si les parenthèses fermantes sont absentes d'une directive de préprocesseur, le compilateur génère une erreur.
Pour plus d'informations, consultez Récapitulatif des modifications sans rupture au moment de la compilation.
Exemple
L'exemple suivant génère l'erreur C2004 :
// C2004.cpp
// compile with: /DDEBUG
#include <stdio.h>
int main()
{
#if defined(DEBUG // C2004
printf_s("DEBUG defined\n");
#endif
}
Résolution possible :
// C2004b.cpp
// compile with: /DDEBUG
#include <stdio.h>
int main()
{
#if defined(DEBUG)
printf_s("DEBUG defined\n");
#endif
}