Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Vyhodnoťte výraz v době kompilace a vygenerujte chybu, pokud je FALSEvý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