Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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 booleanExpressionFALSE (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, _ASSERTEMakros _ASSERT_EXPR