Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
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