Makro _STATIC_ASSERT
Vyhodnocení výrazu v době kompilace a generovat chybu, pokud je výsledek FALSE.
_STATIC_ASSERT(
booleanExpression
);
Parametry
- booleanExpression
Výraz (včetně ukazatelů), který je vyhodnocován na nenulovou (TRUE) nebo 0 (FALSE).
Poznámky
Tato makra se podobá _ASSERT a _ASSERTE makra, s výjimkou, že booleanExpression je vyhodnocena v době kompilace místo za běhu.Pokud booleanExpression vyhodnocen jako FALSE (0) C2466 chyba kompilátoru je generována.
Příklad
V tomto příkladu jsme zkontrolujte zda sizeofint je větší než nebo rovno 2 bajty a zda sizeoflong je 1 bajt.Program nebude zkompilován a bude generovat C2466 chyba kompilátoru protože long je větší než 1 bajt.
// 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));
}
Požadavky
Makro |
Požadované záhlaví |
---|---|
_STATIC_ASSERT |
<crtdbg.h> |
Ekvivalent v rozhraní .NET Framework
System::Diagnostics::Debug:: výrazu