_STATIC_ASSERTMacro

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