Note
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de changer d’annuaire.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de changer d’annuaire.
Macro
Évalue une expression au moment de la compilation et génère une erreur quand le résultat est FALSE.
Syntaxe
_STATIC_ASSERT(
booleanExpression
);
Paramètres
booleanExpression
Expression (pointeurs inclus) qui prend une valeur différente de zéro (TRUE) ou 0 (FALSE).
Notes
Cette macro ressemble aux macros, _ASSERTE sauf qu’elle booleanExpression est évaluée au moment de la _ASSERT compilation au lieu de l’exécution. Si booleanExpression a la valeur FALSE (0), l’erreur du compilateur C2466 est générée.
Exemple
Dans cet exemple, nous vérifions si la valeur de sizeof d’un int représente 2 octets ou plus et si la valeur de sizeof d’un long représente 1 octet. Le programme ne sera pas compilé et génère l’erreur du compilateur C2466 , car un long octet 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));
}
Spécifications
| Macro | En-tête requis |
|---|---|
_STATIC_ASSERT |
<crtdbg.h> |
Voir aussi
Référence de fonction alphabétique
_ASSERT, _ASSERTEmacros _ASSERT_EXPR