Compartir a través de


_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

Vea también

Referencia

_ASSERT, _ASSERTE (Macros)

Otros recursos

Referencia alfabética de funciones de CRT