Este artículo se tradujo automáticamente. Para ver el artículo en inglés, active la casilla Inglés. Además, puede mostrar el texto en inglés en una ventana emergente si mueve el puntero del mouse sobre el texto.
Traducción
Inglés
Se recomienda usar Visual Studio 2017
Esta documentación está archivada y no tiene mantenimiento.

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
);

booleanExpression

Expresión (punteros incluida que se evalúa como cero (TRUE) o 0 (FALSE).

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 .

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));
}

Macro

Encabezado necesario

_STATIC_ASSERT

<crtdbg.h>

Mostrar: