Compartilhar via


Macro _STATIC_ASSERT

Avalia uma expressão em tempo de compilação e gerencia um erro quando o resultado é FALSE.

_STATIC_ASSERT(
    booleanExpression
);

Parâmetros

  • booleanExpression
    Expressão (inclusive ponteiros) que avalia como diferente de zero (TRUE) ou 0 (FALSE).

Comentários

Esta macro é semelhante a macros de _ASSERT e de _ASSERTE, exceto que booleanExpression é avaliada em tempo de compilação em vez de em tempo de execução. Se booleanExpression avalia a FALSE (0), Erro do Compilador C2466 será gerado.

Exemplo

Neste exemplo, é verifique se sizeofint seja maior que ou igual a 2 bytes e se sizeoflong é 1 bytes. O programa não criará e gerará Erro do Compilador C2466 porque long é maior que 1 bytes.

// 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

Cabeçalho necessário

_STATIC_ASSERT

<crtdbg.h>

Equivalência do .NET Framework

System::Diagnostics::Debug::Assert

Consulte também

Referência

Macros _ASSERT, _ASSERTE

Outros recursos

Referência da função alfabética CRT