_STATIC_ASSERT
Macro
Evalúa una expresión durante el tiempo de compilación y genera un error cuando el resultado es FALSE
.
Sintaxis
_STATIC_ASSERT(
booleanExpression
);
Parámetros
booleanExpression
Expresión (incluidos los punteros) que se evalúa como un valor distinto de cero (TRUE
) o 0 (FALSE
).
Comentarios
Esta macro es similar a las _ASSERT
macros y _ASSERTE
, excepto 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 el error del compilador C2466.
Ejemplo
En este ejemplo, se comprueba si sizeof
de un int
es mayor o igual a 2 bytes y si sizeof
de un long
es igual a 1 byte. El programa no se compilará y generará el error del compilador C2466 porque un long
elemento es mayor que 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> |
Consulte también
referencia de función alfabética
_ASSERT
, , _ASSERTE
_ASSERT_EXPR
macros