_STATIC_ASSERT
makro
Vyhodnoťte výraz v době kompilace a vygenerujte chybu, pokud je FALSE
výsledkem .
Syntaxe
_STATIC_ASSERT(
booleanExpression
);
Parametry
booleanExpression
Výraz (včetně ukazatelů), který se vyhodnotí jako nenulový (TRUE
) nebo 0 (FALSE
).
Poznámky
Toto makro se podobá makrem _ASSERT
a _ASSERTE
makrem s tím rozdílem, že booleanExpression
se vyhodnocuje v době kompilace místo za běhu. Pokud booleanExpression
se vyhodnotí jako FALSE
(0), vygeneruje se chyba kompilátoru C2466 .
Příklad
V tomto příkladu sizeof
zkontrolujeme, jestli je větší int
než nebo rovna 2 bajtům a zda sizeof
long
je 1 bajt. Program se nezkompiluje a vygeneruje chybu kompilátoru C2466 , 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ý hlavičkový soubor |
---|---|
_STATIC_ASSERT |
<crtdbg.h> |
Viz také
Abecední odkaz na funkci
_ASSERT
, , _ASSERTE
_ASSERT_EXPR
makra