编译器错误 C2004

应输入“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
}