Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Oblicz wyrażenie w czasie kompilacji i wygeneruj błąd, gdy wynik to FALSE.
Składnia
_STATIC_ASSERT(
booleanExpression
);
Parametry
booleanExpression
Wyrażenie (w tym wskaźniki), które oblicza wartość niezerowa (TRUE) lub 0 (FALSE).
Uwagi
To makro przypomina makra _ASSERTi_ASSERTE, z tą różnicą, że booleanExpression jest oceniane w czasie kompilacji zamiast w czasie wykonywania. Jeśli booleanExpression zostanie obliczona FALSE wartość (0), zostanie wygenerowany błąd kompilatora C2466 .
Przykład
W tym przykładzie sprawdzamy, czy sizeof wartość jest int większa niż lub równa 2 bajtom oraz czy sizeof wartość a long to 1 bajt. Program nie zostanie skompilowany i wygeneruje błąd kompilatora C2466 , ponieważ wartość jest long większa niż 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));
}
Wymagania
| Makro | Wymagany nagłówek |
|---|---|
_STATIC_ASSERT |
<crtdbg.h> |
Zobacz też
Odwołanie do funkcji alfabetycznej
_ASSERT, , _ASSERTE_ASSERT_EXPR makra