다음을 통해 공유


_STATIC_ASSERT 매크로

컴파일 시간에 식을 계산하고 결과가 FALSE일 때 에러를 생성합니다.

_STATIC_ASSERT(
    booleanExpression
);

매개 변수

  • booleanExpression
    0이 아닌 값(TRUE) 또는 0(FALSE)으로 계산된 식(포인터 포함)입니다.

설명

이 매크로는 booleanExpression이 런타임 시간 대신 컴파일 시간에 계산된 것을 제외하고 _ASSERT and _ASSERTE macros와 비슷합니다. booleanExpression가 FALSE(0)으로 계산했을 경우, 컴파일러 오류 C2466이 생성됩니다.

예제

이 예에서, int의 sizeof값이 2바이트 이상인지의 여부와 long의 sizeof값이 1바이트인지의 여부를 검사합니다. long가 1바이트보다 크기 때문에, 프로그램은 컴파일되지 않고 컴파일러 오류 C2466를 생성할 것입니다.

// crt__static_assert.c

#include <crtdbg.h>
#include <stdio.h>

_STATIC_ASSERT(sizeof(int) >= 2);
_STATIC_ASSERT(sizeof(long) == 1);  // C2466

int main()
{
    printf("I am sure that sizeof(int) will be >= 2: %d\n",
        sizeof(int));
    printf("I am not so sure that sizeof(long) == 1: %d\n",
        sizeof(long));
}

요구 사항

매크로

필수 헤더

_STATIC_ASSERT

<crtdbg.h>

해당 .NET Framework 항목

System::Diagnostics::Debug:: 어설션

참고 항목

참조

_ASSERT, _ASSERTE 매크로

기타 리소스

CRT 사전순 함수 참조