Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
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