Macro _STATIC_ASSERT
Valuta un'espressione in fase di compilazione e genera un errore quando il risultato è FALSE.
_STATIC_ASSERT(
booleanExpression
);
Parametri
- booleanExpression
Espressione (comprendente i puntatori) che restituisce un valore diverso da zero (TRUE) oppure 0 (FALSE).
Note
Questa macro è simile alle macro _ASSERT e _ASSERTE, con la differenza che booleanExpression viene valutato in fase di compilazione anziché in fase di esecuzione. Se booleanExpression valuta FALSE (0), viene generato Errore del compilatore C2466.
Esempio
In questo esempio, controlliamo se sizeof di un int è maggiore o uguale a 2 byte e se sizeof di un long è di 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 obbligatoria |
---|---|
_STATIC_ASSERT |
<crtdbg.h> |
Equivalente .NET Framework
System::Diagnostics::Debug::Assert