_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
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für