Compartilhar via


Erro do compilador C2004

"defined(id)" esperado

Um identificador deve aparecer entre parênteses após a palavra-chave do pré-processador.

Esse erro também pode ser gerado como resultado do trabalho de conformidade do compilador que foi feito para o Visual Studio .NET 2003: parênteses ausentes em diretiva do pré-processador. Se o parêntese de fechamento estiver faltando em uma diretiva de pré-processador, o compilador gerará um erro.

Exemplos

O seguinte exemplo gera o C2004:

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

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

Resolução possível:

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

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