Errore del compilatore C2004

Aggiornamento: novembre 2007

Messaggio di errore

previsto 'defined(id)'
expected 'defined(id)'

È necessario che la parola chiave del preprocessore sia seguita da un identificatore racchiuso tra parentesi.

Questo errore può anche venire generato come risultato delle operazioni di conformità eseguite per Visual Studio .NET 2003: parentesi mancanti in una direttiva per il preprocessore. Se in una direttiva per il preprocessore manca la parentesi di chiusura, il compilatore genererà un errore.

Per ulteriori informazioni, vedere Riepilogo delle ultime modifiche in fase di compilazione.

Esempio

Nell'esempio seguente viene generato l'errore C2004:

// C2004.cpp
// compile with: /DDEBUG
#include <stdio.h>

int main() 
{
    #if defined(DEBUG   // C2004
        printf_s("DEBUG defined\n");
    #endif
}

Possibile soluzione:

// C2004b.cpp
// compile with: /DDEBUG
#include <stdio.h>

int main() 
{
    #if defined(DEBUG)
        printf_s("DEBUG defined\n");
    #endif
}