_STATIC_ASSERT-Makro
Werten Sie einen Ausdruck zur Kompilierzeit ausgeführt und generieren Sie einen Fehler, wenn das Ergebnis FALSE ist.
_STATIC_ASSERT(
booleanExpression
);
Parameter
- booleanExpression
Ausdruck (einschließlich Zeiger) bis der Wert ungleich 0 (null) (TRUE) oder 0 ergibt (FALSE).
Hinweise
Dieses Makro entspricht _ASSERT und _ASSERTE Makros, außer dass booleanExpression wird zur Kompilierzeit statt zur Laufzeit ausgewertet. Wenn booleanExpression auf FALSE (0) ergibt, wird Compilerfehler C2466 generiert.
Beispiel
In diesem Beispiel untersuchen wir, dass sizeof größer als int ist, oder gleich 2 Bytes und ob sizeoflong 1 Byte ist. Das Programm wird nicht kompiliert und sie generiert Compilerfehler C2466, da long 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> |
.NET Framework-Entsprechung
System::Diagnostics::Debug::Assert