Condividi tramite


_STATIC_ASSERT macro

Valutare un'espressione in fase di compilazione e generare un errore quando il risultato è FALSE.

Sintassi

_STATIC_ASSERT(
    booleanExpression
);

Parametri

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

Osservazioni:

Questa macro è simile alle _ASSERT macro e _ASSERTE , ad eccezione del fatto che booleanExpression viene valutata in fase di compilazione anziché in fase di esecuzione. Se booleanExpression restituisce FALSE (0), viene generato l'errore del compilatore C2466.

Esempio

In questo esempio, controlliamo se sizeofint è maggiore o uguale a 2 byte e se sizeoflong è di 1 byte. Il programma non verrà compilato e genererà l'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>

Vedi anche

Informazioni di riferimento sulle funzioni alfabetiche
_ASSERT, _ASSERTE, _ASSERT_EXPR macro