_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:: 어설션