_STATIC_ASSERT
-Makro
Auswerten eines Ausdrucks zur Kompilierzeit und Generieren eines Fehlers, wenn das Ergebnis FALSE
ist
Syntax
_STATIC_ASSERT(
booleanExpression
);
Parameter
booleanExpression
Ausdruck (einschließlich Zeiger) der zu ungleich null (TRUE
) oder 0 (FALSE
) ausgewertet wird.
Hinweise
Dieses Makro ähnelt den _ASSERT
Makros und _ASSERTE
makros, mit der Ausnahme, dass booleanExpression
zur Kompilierungszeit statt zur Laufzeit ausgewertet wird. Wenn booleanExpression
FALSE
(0) ergibt, wird Compilerfehler C2466 generiert.
Beispiel
In diesem Beispiel wird überprüft, ob das sizeof
eines int
größer als oder gleich 2 Bytes und das sizeof
eines long
1 Byte ist. Das Programm wird nicht kompiliert und generiert Compilerfehler C2466 , da ein long
Byte größer als 1 Byte ist.
// 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));
}
Anforderungen
Makro | Erforderlicher Header |
---|---|
_STATIC_ASSERT |
<crtdbg.h> |
Siehe auch
Alphabetische Funktionsreferenz
_ASSERT
, _ASSERTE
Makros _ASSERT_EXPR