_STATIC_ASSERT 매크로

컴파일 시 식을 계산하고 결과가 FALSE인 경우 오류를 생성합니다.

구문

_STATIC_ASSERT(
    booleanExpression
);

매개 변수

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

설명

이 매크로는 _ASSERT 런타임이 아닌 컴파일 시간에 평가된다는 점을 booleanExpression 제외하고 매크로와 _ASSERTE유사합니다. booleanExpressionFALSE(0)로 계산되면 컴파일러 오류 C2466가 생성됩니다.

예시

이 예에서는 sizeofint 값이 2바이트 이상인지의 여부와 sizeoflong 값이 1바이트인지 여부를 검사합니다. 프로그램은 컴파일되지 않으며 1 바이트보다 크므로 컴파일러 오류 C2466long 생성됩니다.

// 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>

참고 항목

사전순 함수 참조
_ASSERT, _ASSERTE매크로 _ASSERT_EXPR