Macro de _STATIC_ASSERT
Évaluez une expression au moment de la compilation et générer une erreur lorsque le résultat est FALSE.
_STATIC_ASSERT(
booleanExpression
);
Paramètres
- booleanExpression
Expression (pointeurs) qui prend une valeur différente de zéro (TRUE) ou 0 (FALSE).
Notes
Cette macro ressemble à macros de _ASSERT et de _ASSERTE, sauf qu' booleanExpression est évalué au moment de la compilation plutôt qu'au moment de l'exécution.Si booleanExpression correspond à FALSE (0), Erreur du compilateur C2466 est généré.
Exemple
Dans cet exemple, nous activons si sizeofint est supérieure ou égale à 2 octets et si sizeoflong est de 1 octets.Le programme ne sera pas et il génère Erreur du compilateur C2466 car long est supérieur à 1 octet.
// 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 : : diagnostic : : débogage : : assertion