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

Voir aussi

Référence

_ASSERT ; _ASSERTE de macros

Autres ressources

Référence de fonction alphabétique