Condividi tramite


Macro di _STATIC_ASSERT

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

_STATIC_ASSERT(
    booleanExpression
);

Parametri

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

Note

Questa macro è simile a macro di _ASSERTE e _ASSERT, eccetto booleanExpression viene valutato in fase di compilazione anziché in fase di esecuzione.se booleanExpression restituisce FALSE (0), Errore del compilatore C2466 viene generato l'evento.

Esempio

In questo esempio, se controlliamo sizeofint è maggiore o uguale a 2 byte e se sizeof in long è 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 di associazione

_STATIC_ASSERT

<crtdbg.h>

Equivalente .NET Framework

System:: diagnostica:: debug:: asserzione

Vedere anche

Riferimenti

_ASSERT, macro di _ASSERTE

Altre risorse

Riferimento di funzione alfabetico