Поделиться через


Ошибка компилятора C2004

Обновлен: Ноябрь 2007

Сообщение об ошибке

Требуется "defined(id)"
expected 'defined(id)'

Идентификатор должен стоять в круглых скобках и сопровождаться ключевым словом обработчика.

Эта ошибка также может возникнуть в результате работы согласованности компилятора выполненной для Visual Studio .NET 2003: отсутствуют круглые скобки в директиве обработчика. Если в директиве обработчика отсутствует закрывающая круглая скобка, компилятор выдаст сообщение об ошибке.

Дополнительные сведения см. в разделе Сводная информация о критических изменениях времени компиляции.

Пример

Следующий пример приводит к возникновению ошибки C2004:

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

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

Возможный способ устранения данной ошибки:

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

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