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