Condividi tramite


Macro _STATIC_ASSERT

Valuta un'espressione in fase di compilazione e genera un errore quando il risultato è FALSE.

_STATIC_ASSERT(
    booleanExpression
);

Parametri

  • booleanExpression
    Espressione (comprendente i puntatori) che restituisce un valore diverso da zero (TRUE) oppure 0 (FALSE).

Note

Questa macro è simile alle macro _ASSERT e _ASSERTE, con la differenza che booleanExpression viene valutato in fase di compilazione anziché in fase di esecuzione. Se booleanExpression valuta FALSE (0), viene generato Errore del compilatore C2466.

Esempio

In questo esempio, controlliamo se sizeof di un int è maggiore o uguale a 2 byte e se sizeof di un long è di 1 byte. Il programma non verrà compilato e genererà Errore del compilatore C2466 perché long è maggiore di 1 byte.

// 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));
}

Requisiti

Macro

Intestazione obbligatoria

_STATIC_ASSERT

<crtdbg.h>

Equivalente .NET Framework

System::Diagnostics::Debug::Assert

Vedere anche

Riferimenti

Macro _ASSERT, _ASSERTE

Altre risorse

Riferimento alfabetico alle funzioni CRT