_STATIC_ASSERT (Macro)
Evaluar una expresión en tiempo de compilación y genere un error cuando el resultado es FALSE.
_STATIC_ASSERT(
booleanExpression
);
Parámetros
- booleanExpression
Expresión (punteros incluida que se evalúa como cero (TRUE) o 0 (FALSE).
Comentarios
Esta macro se parece a macros _ASSERT y _ASSERTE, salvo que booleanExpression se evalúa en tiempo de compilación en lugar de en tiempo de ejecución. Si booleanExpression se evalúa como FALSE (0), se genera Error del compilador C2466 .
Ejemplo
En este ejemplo, comprobamos si sizeofint sea mayor que o igual a 2 bytes y si sizeoflong es 1 bytes. El programa no se compilará y generará Error del compilador C2466 porque long es mayor de 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));
}
Requisitos
Macro |
Encabezado necesario |
---|---|
_STATIC_ASSERT |
<crtdbg.h> |
Equivalente en .NET Framework
System::Diagnostics::Debug::Assert