Compartir a través de


Macro de _STATIC_ASSERT

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:: depuración:: Declarar

Vea también

Referencia

_ASSERT, macros _ASSERTE

Otros recursos

Referencia de funciones alfabética