다음을 통해 공유


컴파일러 오류 C2004

업데이트: 2007년 11월

오류 메시지

'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
}