다음을 통해 공유


_STATIC_ASSERT 매크로

컴파일 타임에 식을 계산 하 고 결과 때 오류가 생성 FALSE.

_STATIC_ASSERT(
    booleanExpression
);

매개 변수

  • booleanExpression
    0이 아닌 값으로 계산 되는 식 (대 한 포인터 포함) (TRUE) 또는 0 (FALSE).

설명

비슷한이 매크로 _ASSERT 및 _ASSERTE 매크로를 제외 하 고 booleanExpression 런타임 시 대신 컴파일 타임에 계산 됩니다.경우 booleanExpression 로 평가 FALSE (0) 컴파일러 오류 C2466 생성 됩니다.

예제

이 예에서는 확인 여부는 sizeof 는 int 2 바이트 보다 큰 크거나 같음 여부 및는 sizeof 는 long 1 바이트입니다.프로그램이 컴파일되지 않은 및 생성 합니다 컴파일러 오류 C2466 때문에 있는 long 1 바이트 보다 더 큽니다.

// 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 매크로

기타 리소스

사전순 함수 참조