_STATIC_ASSERT, macro
Évalue une expression au moment de la compilation et génère une erreur lorsque le résultat est FALSE.
_STATIC_ASSERT(
booleanExpression
);
Paramètres
- booleanExpression
Expression (pointeurs compris) qui s'évalue à une valeur non nulle (TRUE) ou 0 (FALSE).
Notes
Cette macro ressemble à macros de _ASSERT et de _ASSERTE, sauf que booleanExpression est évaluée au moment de la compilation et non au moment de l'exécution. Si booleanExpression prend la valeur FALSE (0), Erreur du compilateur C2466 est généré.
Exemple
Dans cet exemple, nous vérifions si la sizeof un int dépasse ou égale 2 octets et si la sizeof un long est de 1 octet. Le programme ne compilera pas et il génèrera Erreur du compilateur C2466 car long est supérieur à 1 octets.
// 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));
}
Configuration requise
Macro |
En-tête requis |
---|---|
_STATIC_ASSERT |
<crtdbg.h> |
Équivalent .NET Framework
System::Diagnostics::Debug::Assert