_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 sizeof
int
è maggiore o uguale a 2 byte e se sizeof
long
è 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